chore: Update discovery artifacts (#1407)

## Deleted keys were detected in the following pre-stable discovery artifacts:
analyticsadmin v1alpha https://github.com/googleapis/google-api-python-client/commit/3ed78879365ebef411b2748be8b5d52c047210eb

## Discovery Artifact Change Summary:
feat(analyticsadmin): update the api https://github.com/googleapis/google-api-python-client/commit/3ed78879365ebef411b2748be8b5d52c047210eb
feat(composer): update the api https://github.com/googleapis/google-api-python-client/commit/4862529435851dbb106efa0311c2b7515d2ad2ea
feat(genomics): update the api https://github.com/googleapis/google-api-python-client/commit/8a1c8a67e7e5b76581cfa95ffa14c01019c305af
feat(gkehub): update the api https://github.com/googleapis/google-api-python-client/commit/0fd49e0d39455077e39d850ac464635034d253b8
diff --git a/docs/dyn/analyticsadmin_v1alpha.accounts.html b/docs/dyn/analyticsadmin_v1alpha.accounts.html
index 8c4db71..8e9d633 100644
--- a/docs/dyn/analyticsadmin_v1alpha.accounts.html
+++ b/docs/dyn/analyticsadmin_v1alpha.accounts.html
@@ -380,7 +380,6 @@
             },
             "firebaseLink": { # A link between an GA4 property and a Firebase project. # A snapshot of a FirebaseLink resource in change history.
               "createTime": "A String", # Output only. Time when this FirebaseLink was originally created.
-              "maximumUserAccess": "A String", # Maximum user access to the GA4 property allowed to admins of the linked Firebase project.
               "name": "A String", # Output only. Example format: properties/1234/firebaseLinks/5678
               "project": "A String", # Immutable. Firebase project resource name. When creating a FirebaseLink, you may provide this resource name using either a project number or project ID. Once this resource has been created, returned FirebaseLinks will always have a project_name that contains a project number. Format: 'projects/{project number}' Example: 'projects/1234'
             },
@@ -474,7 +473,6 @@
             },
             "firebaseLink": { # A link between an GA4 property and a Firebase project. # A snapshot of a FirebaseLink resource in change history.
               "createTime": "A String", # Output only. Time when this FirebaseLink was originally created.
-              "maximumUserAccess": "A String", # Maximum user access to the GA4 property allowed to admins of the linked Firebase project.
               "name": "A String", # Output only. Example format: properties/1234/firebaseLinks/5678
               "project": "A String", # Immutable. Firebase project resource name. When creating a FirebaseLink, you may provide this resource name using either a project number or project ID. Once this resource has been created, returned FirebaseLinks will always have a project_name that contains a project number. Format: 'projects/{project number}' Example: 'projects/1234'
             },
diff --git a/docs/dyn/analyticsadmin_v1alpha.properties.firebaseLinks.html b/docs/dyn/analyticsadmin_v1alpha.properties.firebaseLinks.html
index c4bd61b..7f12c5e 100644
--- a/docs/dyn/analyticsadmin_v1alpha.properties.firebaseLinks.html
+++ b/docs/dyn/analyticsadmin_v1alpha.properties.firebaseLinks.html
@@ -109,7 +109,6 @@
 
 { # A link between an GA4 property and a Firebase project.
   "createTime": "A String", # Output only. Time when this FirebaseLink was originally created.
-  "maximumUserAccess": "A String", # Maximum user access to the GA4 property allowed to admins of the linked Firebase project.
   "name": "A String", # Output only. Example format: properties/1234/firebaseLinks/5678
   "project": "A String", # Immutable. Firebase project resource name. When creating a FirebaseLink, you may provide this resource name using either a project number or project ID. Once this resource has been created, returned FirebaseLinks will always have a project_name that contains a project number. Format: 'projects/{project number}' Example: 'projects/1234'
 }
@@ -124,7 +123,6 @@
 
     { # A link between an GA4 property and a Firebase project.
   "createTime": "A String", # Output only. Time when this FirebaseLink was originally created.
-  "maximumUserAccess": "A String", # Maximum user access to the GA4 property allowed to admins of the linked Firebase project.
   "name": "A String", # Output only. Example format: properties/1234/firebaseLinks/5678
   "project": "A String", # Immutable. Firebase project resource name. When creating a FirebaseLink, you may provide this resource name using either a project number or project ID. Once this resource has been created, returned FirebaseLinks will always have a project_name that contains a project number. Format: 'projects/{project number}' Example: 'projects/1234'
 }</pre>
@@ -168,7 +166,6 @@
   &quot;firebaseLinks&quot;: [ # List of FirebaseLinks. This will have at most one value.
     { # A link between an GA4 property and a Firebase project.
       &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when this FirebaseLink was originally created.
-      &quot;maximumUserAccess&quot;: &quot;A String&quot;, # Maximum user access to the GA4 property allowed to admins of the linked Firebase project.
       &quot;name&quot;: &quot;A String&quot;, # Output only. Example format: properties/1234/firebaseLinks/5678
       &quot;project&quot;: &quot;A String&quot;, # Immutable. Firebase project resource name. When creating a FirebaseLink, you may provide this resource name using either a project number or project ID. Once this resource has been created, returned FirebaseLinks will always have a project_name that contains a project number. Format: &#x27;projects/{project number}&#x27; Example: &#x27;projects/1234&#x27;
     },
@@ -202,7 +199,6 @@
 
 { # A link between an GA4 property and a Firebase project.
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when this FirebaseLink was originally created.
-  &quot;maximumUserAccess&quot;: &quot;A String&quot;, # Maximum user access to the GA4 property allowed to admins of the linked Firebase project.
   &quot;name&quot;: &quot;A String&quot;, # Output only. Example format: properties/1234/firebaseLinks/5678
   &quot;project&quot;: &quot;A String&quot;, # Immutable. Firebase project resource name. When creating a FirebaseLink, you may provide this resource name using either a project number or project ID. Once this resource has been created, returned FirebaseLinks will always have a project_name that contains a project number. Format: &#x27;projects/{project number}&#x27; Example: &#x27;projects/1234&#x27;
 }
@@ -218,7 +214,6 @@
 
     { # A link between an GA4 property and a Firebase project.
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when this FirebaseLink was originally created.
-  &quot;maximumUserAccess&quot;: &quot;A String&quot;, # Maximum user access to the GA4 property allowed to admins of the linked Firebase project.
   &quot;name&quot;: &quot;A String&quot;, # Output only. Example format: properties/1234/firebaseLinks/5678
   &quot;project&quot;: &quot;A String&quot;, # Immutable. Firebase project resource name. When creating a FirebaseLink, you may provide this resource name using either a project number or project ID. Once this resource has been created, returned FirebaseLinks will always have a project_name that contains a project number. Format: &#x27;projects/{project number}&#x27; Example: &#x27;projects/1234&#x27;
 }</pre>
diff --git a/docs/dyn/cloudasset_v1.feeds.html b/docs/dyn/cloudasset_v1.feeds.html
index 305ba9e..de42d80 100644
--- a/docs/dyn/cloudasset_v1.feeds.html
+++ b/docs/dyn/cloudasset_v1.feeds.html
@@ -115,7 +115,7 @@
     &quot;assetTypes&quot;: [ # A list of types of the assets to receive updates. You must specify either or both of asset_names and asset_types. Only asset updates matching specified asset_names or asset_types are exported to the feed. Example: `&quot;compute.googleapis.com/Disk&quot;` See [this topic](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for a list of all supported asset types.
       &quot;A String&quot;,
     ],
-    &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 an asset update should be published. If specified, an asset will be returned only when the expression evaluates to true. When set, `expression` field in the `Expr` must be a valid [CEL expression] (https://github.com/google/cel-spec) on a TemporalAsset with name `temporal_asset`. Example: a Feed with expression (&quot;temporal_asset.deleted == true&quot;) will only publish Asset deletions. Other fields of `Expr` are optional. See our [user guide](https://cloud.google.com/asset-inventory/docs/monitoring-asset-changes#feed_with_condition) for detailed instructions.
+    &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 an asset update should be published. If specified, an asset will be returned only when the expression evaluates to true. When set, `expression` field in the `Expr` must be a valid [CEL expression] (https://github.com/google/cel-spec) on a TemporalAsset with name `temporal_asset`. Example: a Feed with expression (&quot;temporal_asset.deleted == true&quot;) will only publish Asset deletions. Other fields of `Expr` are optional. See our [user guide](https://cloud.google.com/asset-inventory/docs/monitoring-asset-changes-with-condition) for detailed instructions.
       &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.
@@ -147,7 +147,7 @@
   &quot;assetTypes&quot;: [ # A list of types of the assets to receive updates. You must specify either or both of asset_names and asset_types. Only asset updates matching specified asset_names or asset_types are exported to the feed. Example: `&quot;compute.googleapis.com/Disk&quot;` See [this topic](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for a list of all supported asset types.
     &quot;A String&quot;,
   ],
-  &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 an asset update should be published. If specified, an asset will be returned only when the expression evaluates to true. When set, `expression` field in the `Expr` must be a valid [CEL expression] (https://github.com/google/cel-spec) on a TemporalAsset with name `temporal_asset`. Example: a Feed with expression (&quot;temporal_asset.deleted == true&quot;) will only publish Asset deletions. Other fields of `Expr` are optional. See our [user guide](https://cloud.google.com/asset-inventory/docs/monitoring-asset-changes#feed_with_condition) for detailed instructions.
+  &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 an asset update should be published. If specified, an asset will be returned only when the expression evaluates to true. When set, `expression` field in the `Expr` must be a valid [CEL expression] (https://github.com/google/cel-spec) on a TemporalAsset with name `temporal_asset`. Example: a Feed with expression (&quot;temporal_asset.deleted == true&quot;) will only publish Asset deletions. Other fields of `Expr` are optional. See our [user guide](https://cloud.google.com/asset-inventory/docs/monitoring-asset-changes-with-condition) for detailed instructions.
     &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.
@@ -202,7 +202,7 @@
   &quot;assetTypes&quot;: [ # A list of types of the assets to receive updates. You must specify either or both of asset_names and asset_types. Only asset updates matching specified asset_names or asset_types are exported to the feed. Example: `&quot;compute.googleapis.com/Disk&quot;` See [this topic](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for a list of all supported asset types.
     &quot;A String&quot;,
   ],
-  &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 an asset update should be published. If specified, an asset will be returned only when the expression evaluates to true. When set, `expression` field in the `Expr` must be a valid [CEL expression] (https://github.com/google/cel-spec) on a TemporalAsset with name `temporal_asset`. Example: a Feed with expression (&quot;temporal_asset.deleted == true&quot;) will only publish Asset deletions. Other fields of `Expr` are optional. See our [user guide](https://cloud.google.com/asset-inventory/docs/monitoring-asset-changes#feed_with_condition) for detailed instructions.
+  &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 an asset update should be published. If specified, an asset will be returned only when the expression evaluates to true. When set, `expression` field in the `Expr` must be a valid [CEL expression] (https://github.com/google/cel-spec) on a TemporalAsset with name `temporal_asset`. Example: a Feed with expression (&quot;temporal_asset.deleted == true&quot;) will only publish Asset deletions. Other fields of `Expr` are optional. See our [user guide](https://cloud.google.com/asset-inventory/docs/monitoring-asset-changes-with-condition) for detailed instructions.
     &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.
@@ -241,7 +241,7 @@
       &quot;assetTypes&quot;: [ # A list of types of the assets to receive updates. You must specify either or both of asset_names and asset_types. Only asset updates matching specified asset_names or asset_types are exported to the feed. Example: `&quot;compute.googleapis.com/Disk&quot;` See [this topic](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for a list of all supported asset types.
         &quot;A String&quot;,
       ],
-      &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 an asset update should be published. If specified, an asset will be returned only when the expression evaluates to true. When set, `expression` field in the `Expr` must be a valid [CEL expression] (https://github.com/google/cel-spec) on a TemporalAsset with name `temporal_asset`. Example: a Feed with expression (&quot;temporal_asset.deleted == true&quot;) will only publish Asset deletions. Other fields of `Expr` are optional. See our [user guide](https://cloud.google.com/asset-inventory/docs/monitoring-asset-changes#feed_with_condition) for detailed instructions.
+      &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 an asset update should be published. If specified, an asset will be returned only when the expression evaluates to true. When set, `expression` field in the `Expr` must be a valid [CEL expression] (https://github.com/google/cel-spec) on a TemporalAsset with name `temporal_asset`. Example: a Feed with expression (&quot;temporal_asset.deleted == true&quot;) will only publish Asset deletions. Other fields of `Expr` are optional. See our [user guide](https://cloud.google.com/asset-inventory/docs/monitoring-asset-changes-with-condition) for detailed instructions.
         &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.
@@ -276,7 +276,7 @@
     &quot;assetTypes&quot;: [ # A list of types of the assets to receive updates. You must specify either or both of asset_names and asset_types. Only asset updates matching specified asset_names or asset_types are exported to the feed. Example: `&quot;compute.googleapis.com/Disk&quot;` See [this topic](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for a list of all supported asset types.
       &quot;A String&quot;,
     ],
-    &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 an asset update should be published. If specified, an asset will be returned only when the expression evaluates to true. When set, `expression` field in the `Expr` must be a valid [CEL expression] (https://github.com/google/cel-spec) on a TemporalAsset with name `temporal_asset`. Example: a Feed with expression (&quot;temporal_asset.deleted == true&quot;) will only publish Asset deletions. Other fields of `Expr` are optional. See our [user guide](https://cloud.google.com/asset-inventory/docs/monitoring-asset-changes#feed_with_condition) for detailed instructions.
+    &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 an asset update should be published. If specified, an asset will be returned only when the expression evaluates to true. When set, `expression` field in the `Expr` must be a valid [CEL expression] (https://github.com/google/cel-spec) on a TemporalAsset with name `temporal_asset`. Example: a Feed with expression (&quot;temporal_asset.deleted == true&quot;) will only publish Asset deletions. Other fields of `Expr` are optional. See our [user guide](https://cloud.google.com/asset-inventory/docs/monitoring-asset-changes-with-condition) for detailed instructions.
       &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.
@@ -308,7 +308,7 @@
   &quot;assetTypes&quot;: [ # A list of types of the assets to receive updates. You must specify either or both of asset_names and asset_types. Only asset updates matching specified asset_names or asset_types are exported to the feed. Example: `&quot;compute.googleapis.com/Disk&quot;` See [this topic](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for a list of all supported asset types.
     &quot;A String&quot;,
   ],
-  &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 an asset update should be published. If specified, an asset will be returned only when the expression evaluates to true. When set, `expression` field in the `Expr` must be a valid [CEL expression] (https://github.com/google/cel-spec) on a TemporalAsset with name `temporal_asset`. Example: a Feed with expression (&quot;temporal_asset.deleted == true&quot;) will only publish Asset deletions. Other fields of `Expr` are optional. See our [user guide](https://cloud.google.com/asset-inventory/docs/monitoring-asset-changes#feed_with_condition) for detailed instructions.
+  &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 an asset update should be published. If specified, an asset will be returned only when the expression evaluates to true. When set, `expression` field in the `Expr` must be a valid [CEL expression] (https://github.com/google/cel-spec) on a TemporalAsset with name `temporal_asset`. Example: a Feed with expression (&quot;temporal_asset.deleted == true&quot;) will only publish Asset deletions. Other fields of `Expr` are optional. See our [user guide](https://cloud.google.com/asset-inventory/docs/monitoring-asset-changes-with-condition) for detailed instructions.
     &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.
diff --git a/docs/dyn/cloudtasks_v2.projects.locations.queues.html b/docs/dyn/cloudtasks_v2.projects.locations.queues.html
index 45d09d5..016d5d7 100644
--- a/docs/dyn/cloudtasks_v2.projects.locations.queues.html
+++ b/docs/dyn/cloudtasks_v2.projects.locations.queues.html
@@ -157,7 +157,7 @@
   &quot;stackdriverLoggingConfig&quot;: { # Configuration options for writing logs to [Stackdriver Logging](https://cloud.google.com/logging/docs/). # Configuration options for writing logs to [Stackdriver Logging](https://cloud.google.com/logging/docs/). If this field is unset, then no logs are written.
     &quot;samplingRatio&quot;: 3.14, # Specifies the fraction of operations to write to [Stackdriver Logging](https://cloud.google.com/logging/docs/). This field may contain any value between 0.0 and 1.0, inclusive. 0.0 is the default and means that no operations are logged.
   },
-  &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the queue. `state` can only be changed by calling PauseQueue, ResumeQueue, or uploading [queue.yaml/xml](https://cloud.google.com/appengine/docs/python/config/queueref). UpdateQueue cannot be used to change `state`.
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the queue. `state` can only be changed by called PauseQueue, ResumeQueue, or uploading [queue.yaml/xml](https://cloud.google.com/appengine/docs/python/config/queueref). UpdateQueue cannot be used to change `state`.
 }
 
   x__xgafv: string, V1 error format.
@@ -192,7 +192,7 @@
   &quot;stackdriverLoggingConfig&quot;: { # Configuration options for writing logs to [Stackdriver Logging](https://cloud.google.com/logging/docs/). # Configuration options for writing logs to [Stackdriver Logging](https://cloud.google.com/logging/docs/). If this field is unset, then no logs are written.
     &quot;samplingRatio&quot;: 3.14, # Specifies the fraction of operations to write to [Stackdriver Logging](https://cloud.google.com/logging/docs/). This field may contain any value between 0.0 and 1.0, inclusive. 0.0 is the default and means that no operations are logged.
   },
-  &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the queue. `state` can only be changed by calling PauseQueue, ResumeQueue, or uploading [queue.yaml/xml](https://cloud.google.com/appengine/docs/python/config/queueref). UpdateQueue cannot be used to change `state`.
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the queue. `state` can only be changed by called PauseQueue, ResumeQueue, or uploading [queue.yaml/xml](https://cloud.google.com/appengine/docs/python/config/queueref). UpdateQueue cannot be used to change `state`.
 }</pre>
 </div>
 
@@ -252,7 +252,7 @@
   &quot;stackdriverLoggingConfig&quot;: { # Configuration options for writing logs to [Stackdriver Logging](https://cloud.google.com/logging/docs/). # Configuration options for writing logs to [Stackdriver Logging](https://cloud.google.com/logging/docs/). If this field is unset, then no logs are written.
     &quot;samplingRatio&quot;: 3.14, # Specifies the fraction of operations to write to [Stackdriver Logging](https://cloud.google.com/logging/docs/). This field may contain any value between 0.0 and 1.0, inclusive. 0.0 is the default and means that no operations are logged.
   },
-  &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the queue. `state` can only be changed by calling PauseQueue, ResumeQueue, or uploading [queue.yaml/xml](https://cloud.google.com/appengine/docs/python/config/queueref). UpdateQueue cannot be used to change `state`.
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the queue. `state` can only be changed by called PauseQueue, ResumeQueue, or uploading [queue.yaml/xml](https://cloud.google.com/appengine/docs/python/config/queueref). UpdateQueue cannot be used to change `state`.
 }</pre>
 </div>
 
@@ -343,7 +343,7 @@
       &quot;stackdriverLoggingConfig&quot;: { # Configuration options for writing logs to [Stackdriver Logging](https://cloud.google.com/logging/docs/). # Configuration options for writing logs to [Stackdriver Logging](https://cloud.google.com/logging/docs/). If this field is unset, then no logs are written.
         &quot;samplingRatio&quot;: 3.14, # Specifies the fraction of operations to write to [Stackdriver Logging](https://cloud.google.com/logging/docs/). This field may contain any value between 0.0 and 1.0, inclusive. 0.0 is the default and means that no operations are logged.
       },
-      &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the queue. `state` can only be changed by calling PauseQueue, ResumeQueue, or uploading [queue.yaml/xml](https://cloud.google.com/appengine/docs/python/config/queueref). UpdateQueue cannot be used to change `state`.
+      &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the queue. `state` can only be changed by called PauseQueue, ResumeQueue, or uploading [queue.yaml/xml](https://cloud.google.com/appengine/docs/python/config/queueref). UpdateQueue cannot be used to change `state`.
     },
   ],
 }</pre>
@@ -396,7 +396,7 @@
   &quot;stackdriverLoggingConfig&quot;: { # Configuration options for writing logs to [Stackdriver Logging](https://cloud.google.com/logging/docs/). # Configuration options for writing logs to [Stackdriver Logging](https://cloud.google.com/logging/docs/). If this field is unset, then no logs are written.
     &quot;samplingRatio&quot;: 3.14, # Specifies the fraction of operations to write to [Stackdriver Logging](https://cloud.google.com/logging/docs/). This field may contain any value between 0.0 and 1.0, inclusive. 0.0 is the default and means that no operations are logged.
   },
-  &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the queue. `state` can only be changed by calling PauseQueue, ResumeQueue, or uploading [queue.yaml/xml](https://cloud.google.com/appengine/docs/python/config/queueref). UpdateQueue cannot be used to change `state`.
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the queue. `state` can only be changed by called PauseQueue, ResumeQueue, or uploading [queue.yaml/xml](https://cloud.google.com/appengine/docs/python/config/queueref). UpdateQueue cannot be used to change `state`.
 }
 
   updateMask: string, A mask used to specify which fields of the queue are being updated. If empty, then all fields will be updated.
@@ -432,7 +432,7 @@
   &quot;stackdriverLoggingConfig&quot;: { # Configuration options for writing logs to [Stackdriver Logging](https://cloud.google.com/logging/docs/). # Configuration options for writing logs to [Stackdriver Logging](https://cloud.google.com/logging/docs/). If this field is unset, then no logs are written.
     &quot;samplingRatio&quot;: 3.14, # Specifies the fraction of operations to write to [Stackdriver Logging](https://cloud.google.com/logging/docs/). This field may contain any value between 0.0 and 1.0, inclusive. 0.0 is the default and means that no operations are logged.
   },
-  &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the queue. `state` can only be changed by calling PauseQueue, ResumeQueue, or uploading [queue.yaml/xml](https://cloud.google.com/appengine/docs/python/config/queueref). UpdateQueue cannot be used to change `state`.
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the queue. `state` can only be changed by called PauseQueue, ResumeQueue, or uploading [queue.yaml/xml](https://cloud.google.com/appengine/docs/python/config/queueref). UpdateQueue cannot be used to change `state`.
 }</pre>
 </div>
 
@@ -480,7 +480,7 @@
   &quot;stackdriverLoggingConfig&quot;: { # Configuration options for writing logs to [Stackdriver Logging](https://cloud.google.com/logging/docs/). # Configuration options for writing logs to [Stackdriver Logging](https://cloud.google.com/logging/docs/). If this field is unset, then no logs are written.
     &quot;samplingRatio&quot;: 3.14, # Specifies the fraction of operations to write to [Stackdriver Logging](https://cloud.google.com/logging/docs/). This field may contain any value between 0.0 and 1.0, inclusive. 0.0 is the default and means that no operations are logged.
   },
-  &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the queue. `state` can only be changed by calling PauseQueue, ResumeQueue, or uploading [queue.yaml/xml](https://cloud.google.com/appengine/docs/python/config/queueref). UpdateQueue cannot be used to change `state`.
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the queue. `state` can only be changed by called PauseQueue, ResumeQueue, or uploading [queue.yaml/xml](https://cloud.google.com/appengine/docs/python/config/queueref). UpdateQueue cannot be used to change `state`.
 }</pre>
 </div>
 
@@ -528,7 +528,7 @@
   &quot;stackdriverLoggingConfig&quot;: { # Configuration options for writing logs to [Stackdriver Logging](https://cloud.google.com/logging/docs/). # Configuration options for writing logs to [Stackdriver Logging](https://cloud.google.com/logging/docs/). If this field is unset, then no logs are written.
     &quot;samplingRatio&quot;: 3.14, # Specifies the fraction of operations to write to [Stackdriver Logging](https://cloud.google.com/logging/docs/). This field may contain any value between 0.0 and 1.0, inclusive. 0.0 is the default and means that no operations are logged.
   },
-  &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the queue. `state` can only be changed by calling PauseQueue, ResumeQueue, or uploading [queue.yaml/xml](https://cloud.google.com/appengine/docs/python/config/queueref). UpdateQueue cannot be used to change `state`.
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the queue. `state` can only be changed by called PauseQueue, ResumeQueue, or uploading [queue.yaml/xml](https://cloud.google.com/appengine/docs/python/config/queueref). UpdateQueue cannot be used to change `state`.
 }</pre>
 </div>
 
@@ -576,7 +576,7 @@
   &quot;stackdriverLoggingConfig&quot;: { # Configuration options for writing logs to [Stackdriver Logging](https://cloud.google.com/logging/docs/). # Configuration options for writing logs to [Stackdriver Logging](https://cloud.google.com/logging/docs/). If this field is unset, then no logs are written.
     &quot;samplingRatio&quot;: 3.14, # Specifies the fraction of operations to write to [Stackdriver Logging](https://cloud.google.com/logging/docs/). This field may contain any value between 0.0 and 1.0, inclusive. 0.0 is the default and means that no operations are logged.
   },
-  &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the queue. `state` can only be changed by calling PauseQueue, ResumeQueue, or uploading [queue.yaml/xml](https://cloud.google.com/appengine/docs/python/config/queueref). UpdateQueue cannot be used to change `state`.
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the queue. `state` can only be changed by called PauseQueue, ResumeQueue, or uploading [queue.yaml/xml](https://cloud.google.com/appengine/docs/python/config/queueref). UpdateQueue cannot be used to change `state`.
 }</pre>
 </div>
 
diff --git a/docs/dyn/composer_v1beta1.projects.locations.environments.html b/docs/dyn/composer_v1beta1.projects.locations.environments.html
index 3f6a47b..7519b73 100644
--- a/docs/dyn/composer_v1beta1.projects.locations.environments.html
+++ b/docs/dyn/composer_v1beta1.projects.locations.environments.html
@@ -75,6 +75,9 @@
 <h1><a href="composer_v1beta1.html">Cloud Composer API</a> . <a href="composer_v1beta1.projects.html">projects</a> . <a href="composer_v1beta1.projects.locations.html">locations</a> . <a href="composer_v1beta1.projects.locations.environments.html">environments</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="#checkUpgrade">checkUpgrade(environment, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Check if an upgrade operation on the environment will succeed. In case of problems detailed info can be found in the returned Operation.</p>
+<p class="toc_element">
   <code><a href="#close">close()</a></code></p>
 <p class="firstline">Close httplib2 connections.</p>
 <p class="toc_element">
@@ -100,6 +103,48 @@
 <p class="firstline">Restart Airflow web server.</p>
 <h3>Method Details</h3>
 <div class="method">
+    <code class="details" id="checkUpgrade">checkUpgrade(environment, body=None, x__xgafv=None)</code>
+  <pre>Check if an upgrade operation on the environment will succeed. In case of problems detailed info can be found in the returned Operation.
+
+Args:
+  environment: string, The resource name of the environment to check upgrade for, in the form: &quot;projects/{projectId}/locations/{locationId}/environments/{environmentId}&quot; (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request to check whether image upgrade will succeed.
+  &quot;imageVersion&quot;: &quot;A String&quot;, # The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression `composer-([0-9]+\.[0-9]+\.[0-9]+|latest)-airflow-[0-9]+\.[0-9]+(\.[0-9]+.*)?`. When used as input, the server also checks if the provided version is supported and denies the request for an unsupported version. The Cloud Composer portion of the version is a [semantic version](https://semver.org) or `latest`. When the patch version is omitted, the current Cloud Composer patch version is selected. When `latest` is provided instead of an explicit version number, the server replaces `latest` with the current Cloud Composer version and stores that version number in the same field. The portion of the image version that follows `airflow-` is an official Apache Airflow repository [release name](https://github.com/apache/incubator-airflow/releases). See also [Version List] (/composer/docs/concepts/versioning/composer-versions).
+}
+
+  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>
diff --git a/docs/dyn/dataproc_v1.projects.locations.workflowTemplates.html b/docs/dyn/dataproc_v1.projects.locations.workflowTemplates.html
index 94ca941..ea75d8b 100644
--- a/docs/dyn/dataproc_v1.projects.locations.workflowTemplates.html
+++ b/docs/dyn/dataproc_v1.projects.locations.workflowTemplates.html
@@ -443,7 +443,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -479,7 +480,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -546,7 +548,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -895,7 +898,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -931,7 +935,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -998,7 +1003,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -1374,7 +1380,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -1410,7 +1417,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -1477,7 +1485,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -1917,7 +1926,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -1953,7 +1963,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -2020,7 +2031,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -2410,7 +2422,8 @@
                 { # A reference to a Compute Engine instance.
                   &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                   &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-                  &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+                  &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+                  &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
                 },
               ],
               &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -2446,7 +2459,8 @@
                 { # A reference to a Compute Engine instance.
                   &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                   &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-                  &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+                  &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+                  &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
                 },
               ],
               &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -2513,7 +2527,8 @@
                 { # A reference to a Compute Engine instance.
                   &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                   &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-                  &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+                  &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+                  &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
                 },
               ],
               &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -2968,7 +2983,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -3004,7 +3020,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -3071,7 +3088,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -3420,7 +3438,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -3456,7 +3475,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -3523,7 +3543,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
diff --git a/docs/dyn/dataproc_v1.projects.regions.clusters.html b/docs/dyn/dataproc_v1.projects.regions.clusters.html
index 55ea4dc..fdac44f 100644
--- a/docs/dyn/dataproc_v1.projects.regions.clusters.html
+++ b/docs/dyn/dataproc_v1.projects.regions.clusters.html
@@ -222,7 +222,8 @@
         { # A reference to a Compute Engine instance.
           &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
           &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-          &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+          &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+          &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
         },
       ],
       &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -258,7 +259,8 @@
         { # A reference to a Compute Engine instance.
           &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
           &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-          &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+          &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+          &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
         },
       ],
       &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -325,7 +327,8 @@
         { # A reference to a Compute Engine instance.
           &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
           &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-          &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+          &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+          &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
         },
       ],
       &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -585,7 +588,8 @@
         { # A reference to a Compute Engine instance.
           &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
           &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-          &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+          &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+          &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
         },
       ],
       &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -621,7 +625,8 @@
         { # A reference to a Compute Engine instance.
           &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
           &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-          &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+          &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+          &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
         },
       ],
       &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -688,7 +693,8 @@
         { # A reference to a Compute Engine instance.
           &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
           &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-          &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+          &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+          &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
         },
       ],
       &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -929,7 +935,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -965,7 +972,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -1032,7 +1040,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -1193,7 +1202,8 @@
         { # A reference to a Compute Engine instance.
           &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
           &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-          &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+          &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+          &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
         },
       ],
       &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -1229,7 +1239,8 @@
         { # A reference to a Compute Engine instance.
           &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
           &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-          &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+          &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+          &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
         },
       ],
       &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -1296,7 +1307,8 @@
         { # A reference to a Compute Engine instance.
           &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
           &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-          &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+          &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+          &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
         },
       ],
       &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
diff --git a/docs/dyn/dataproc_v1.projects.regions.workflowTemplates.html b/docs/dyn/dataproc_v1.projects.regions.workflowTemplates.html
index 6f09b4b..870306e 100644
--- a/docs/dyn/dataproc_v1.projects.regions.workflowTemplates.html
+++ b/docs/dyn/dataproc_v1.projects.regions.workflowTemplates.html
@@ -443,7 +443,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -479,7 +480,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -546,7 +548,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -895,7 +898,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -931,7 +935,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -998,7 +1003,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -1374,7 +1380,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -1410,7 +1417,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -1477,7 +1485,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -1917,7 +1926,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -1953,7 +1963,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -2020,7 +2031,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -2410,7 +2422,8 @@
                 { # A reference to a Compute Engine instance.
                   &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                   &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-                  &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+                  &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+                  &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
                 },
               ],
               &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -2446,7 +2459,8 @@
                 { # A reference to a Compute Engine instance.
                   &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                   &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-                  &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+                  &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+                  &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
                 },
               ],
               &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -2513,7 +2527,8 @@
                 { # A reference to a Compute Engine instance.
                   &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
                   &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-                  &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+                  &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+                  &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
                 },
               ],
               &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -2968,7 +2983,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -3004,7 +3020,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -3071,7 +3088,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -3420,7 +3438,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -3456,7 +3475,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
@@ -3523,7 +3543,8 @@
             { # A reference to a Compute Engine instance.
               &quot;instanceId&quot;: &quot;A String&quot;, # The unique identifier of the Compute Engine instance.
               &quot;instanceName&quot;: &quot;A String&quot;, # The user-friendly name of the Compute Engine instance.
-              &quot;publicKey&quot;: &quot;A String&quot;, # The public key used for sharing data with this instance.
+              &quot;publicEciesKey&quot;: &quot;A String&quot;, # The public ECIES key used for sharing data with this instance.
+              &quot;publicKey&quot;: &quot;A String&quot;, # The public RSA key used for sharing data with this instance.
             },
           ],
           &quot;isPreemptible&quot;: True or False, # Output only. Specifies that this instance group contains preemptible instances.
diff --git a/docs/dyn/datastore_v1beta3.projects.html b/docs/dyn/datastore_v1beta3.projects.html
index 6813001..5bd9b36 100644
--- a/docs/dyn/datastore_v1beta3.projects.html
+++ b/docs/dyn/datastore_v1beta3.projects.html
@@ -232,40 +232,7 @@
           ],
         },
         &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;: { # 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 object 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;a_key&quot;: # Object with schema name: Value
         },
       },
       &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.
@@ -283,40 +250,7 @@
           ],
         },
         &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;: { # 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 object 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;a_key&quot;: # Object with schema name: Value
         },
       },
       &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.
@@ -334,40 +268,7 @@
           ],
         },
         &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;: { # 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 object 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;a_key&quot;: # Object with schema name: Value
         },
       },
     },
@@ -480,40 +381,7 @@
           ],
         },
         &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;: { # 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 object 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;a_key&quot;: # Object with schema name: Value
         },
       },
       &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.
@@ -537,40 +405,7 @@
           ],
         },
         &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;: { # 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 object 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;a_key&quot;: # Object with schema name: Value
         },
       },
       &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.
@@ -668,7 +503,24 @@
           &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;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;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 object 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].
@@ -707,7 +559,24 @@
           &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;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;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 object 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].
@@ -768,7 +637,24 @@
           &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;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;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 object 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].
@@ -855,40 +741,7 @@
             ],
           },
           &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;: { # 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 object 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;a_key&quot;: # Object with schema name: Value
           },
         },
         &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.
@@ -927,7 +780,24 @@
           &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;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;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 object 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/firestore_v1.projects.databases.documents.html b/docs/dyn/firestore_v1.projects.databases.documents.html
index 5887319..02464f5 100644
--- a/docs/dyn/firestore_v1.projects.databases.documents.html
+++ b/docs/dyn/firestore_v1.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 object 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 object 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 object 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 object 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 object 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 object 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 object 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 object 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 object 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 object 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 object 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 object 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/genomics_v2alpha1.pipelines.html b/docs/dyn/genomics_v2alpha1.pipelines.html
index 02aa3c3..7c432d9 100644
--- a/docs/dyn/genomics_v2alpha1.pipelines.html
+++ b/docs/dyn/genomics_v2alpha1.pipelines.html
@@ -183,6 +183,7 @@
         },
         &quot;nvidiaDriverVersion&quot;: &quot;A String&quot;, # The NVIDIA driver version to use when attaching an NVIDIA GPU accelerator. The version specified here must be compatible with the GPU libraries contained in the container being executed, and must be one of the drivers hosted in the `nvidia-drivers-us-public` bucket on Google Cloud Storage.
         &quot;preemptible&quot;: True or False, # If true, allocate a preemptible VM.
+        &quot;reservation&quot;: &quot;A String&quot;, # If specified, the VM will only be allocated inside the matching reservation. It will fail if the VM parameters don&#x27;t match the reservation.
         &quot;serviceAccount&quot;: { # Carries information about a Google Cloud service account. # The service account to install on the VM. This account does not need any permissions other than those required by the pipeline.
           &quot;email&quot;: &quot;A String&quot;, # Email address of the service account. If not specified, the default Compute Engine service account for the project will be used.
           &quot;scopes&quot;: [ # List of scopes to be enabled for this service account on the VM, in addition to the cloud-platform API scope that will be added by default.
diff --git a/docs/dyn/gkehub_v1.projects.locations.features.html b/docs/dyn/gkehub_v1.projects.locations.features.html
index 3811a35..c970f1f 100644
--- a/docs/dyn/gkehub_v1.projects.locations.features.html
+++ b/docs/dyn/gkehub_v1.projects.locations.features.html
@@ -78,9 +78,27 @@
   <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="#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 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>
+<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">
@@ -93,6 +111,448 @@
 </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/*`. (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, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} WILL match the Feature&#x27;s project. {p} will always be returned as the project number, but the project ID is also accepted during input. If the same Membership is specified in the map twice (using the project ID form, and the project number form), exactly ONE of the entries will be saved, with no guarantees as to which. For this reason, it is recommended the same format be used for all entries when mutating a Feature.
+    &quot;a_key&quot;: { # MembershipFeatureSpec contains configuration information for a single Membership.
+      &quot;configmanagement&quot;: { # **Anthos Config Management**: Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Config Management-specific spec.
+        &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;: { # **Anthos Config Management**: State for a single cluster. # Config Management-specific state.
+        &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;: { # **Anthos Config Management**: 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;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;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/*/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;: { # **Multi-cluster Ingress**: The configuration 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/*/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/*/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, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} WILL match the Feature&#x27;s project. {p} will always be returned as the project number, but the project ID is also accepted during input. If the same Membership is specified in the map twice (using the project ID form, and the project number form), exactly ONE of the entries will be saved, with no guarantees as to which. For this reason, it is recommended the same format be used for all entries when mutating a Feature.
+    &quot;a_key&quot;: { # MembershipFeatureSpec contains configuration information for a single Membership.
+      &quot;configmanagement&quot;: { # **Anthos Config Management**: Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Config Management-specific spec.
+        &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;: { # **Anthos Config Management**: State for a single cluster. # Config Management-specific state.
+        &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;: { # **Anthos Config Management**: 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;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;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/*/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;: { # **Multi-cluster Ingress**: The configuration 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="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.
 
@@ -141,6 +601,434 @@
 </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/*`. (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, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} WILL match the Feature&#x27;s project. {p} will always be returned as the project number, but the project ID is also accepted during input. If the same Membership is specified in the map twice (using the project ID form, and the project number form), exactly ONE of the entries will be saved, with no guarantees as to which. For this reason, it is recommended the same format be used for all entries when mutating a Feature.
+        &quot;a_key&quot;: { # MembershipFeatureSpec contains configuration information for a single Membership.
+          &quot;configmanagement&quot;: { # **Anthos Config Management**: Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Config Management-specific spec.
+            &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;: { # **Anthos Config Management**: State for a single cluster. # Config Management-specific state.
+            &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;: { # **Anthos Config Management**: 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;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;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/*/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;: { # **Multi-cluster Ingress**: The configuration 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/*/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, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} WILL match the Feature&#x27;s project. {p} will always be returned as the project number, but the project ID is also accepted during input. If the same Membership is specified in the map twice (using the project ID form, and the project number form), exactly ONE of the entries will be saved, with no guarantees as to which. For this reason, it is recommended the same format be used for all entries when mutating a Feature.
+    &quot;a_key&quot;: { # MembershipFeatureSpec contains configuration information for a single Membership.
+      &quot;configmanagement&quot;: { # **Anthos Config Management**: Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Config Management-specific spec.
+        &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;: { # **Anthos Config Management**: State for a single cluster. # Config Management-specific state.
+        &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;: { # **Anthos Config Management**: 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;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;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/*/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;: { # **Multi-cluster Ingress**: The configuration 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>
+
+<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.
 
diff --git a/docs/dyn/index.md b/docs/dyn/index.md
index a1ee160..9a75442 100644
--- a/docs/dyn/index.md
+++ b/docs/dyn/index.md
@@ -501,8 +501,6 @@
 
 
 ## genomics
-* [v1](http://googleapis.github.io/google-api-python-client/docs/dyn/genomics_v1.html)
-* [v1alpha2](http://googleapis.github.io/google-api-python-client/docs/dyn/genomics_v1alpha2.html)
 * [v2alpha1](http://googleapis.github.io/google-api-python-client/docs/dyn/genomics_v2alpha1.html)
 
 
diff --git a/docs/dyn/metastore_v1alpha.projects.locations.services.backups.html b/docs/dyn/metastore_v1alpha.projects.locations.services.backups.html
index eb687ae..d54b89d 100644
--- a/docs/dyn/metastore_v1alpha.projects.locations.services.backups.html
+++ b/docs/dyn/metastore_v1alpha.projects.locations.services.backups.html
@@ -87,11 +87,20 @@
   <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="#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 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>
+<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>
@@ -326,6 +335,54 @@
 </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 backups in a service.
 
@@ -434,4 +491,119 @@
     </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.backups.html b/docs/dyn/metastore_v1beta.projects.locations.services.backups.html
index 66ba7c9..2f966cf 100644
--- a/docs/dyn/metastore_v1beta.projects.locations.services.backups.html
+++ b/docs/dyn/metastore_v1beta.projects.locations.services.backups.html
@@ -87,11 +87,20 @@
   <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="#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 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>
+<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>
@@ -326,6 +335,54 @@
 </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 backups in a service.
 
@@ -434,4 +491,119 @@
     </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/people_v1.otherContacts.html b/docs/dyn/people_v1.otherContacts.html
index f6562ef..0f534bc 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. The query matches on a contact's `names`, `emailAddresses`, and `phoneNumbers` fields that are from the OTHER_CONTACT source.</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. **IMPORTANT**: Before searching, clients should send a warmup request with an empty query to update the cache. See https://developers.google.com/people/v1/other-contacts#search_the_users_other_contacts</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="close">close()</code>
@@ -529,8 +529,8 @@
         &quot;contactGroupId&quot;: &quot;A String&quot;, # Output only. The contact group ID for the contact group membership.
         &quot;contactGroupResourceName&quot;: &quot;A String&quot;, # The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/{contact_group_id}`. Only contact_group_resource_name can be used for modifying memberships. Any contact group membership can be removed, but only user group or &quot;myContacts&quot; or &quot;starred&quot; system groups memberships can be added. A contact must always have at least one contact group membership.
       },
-      &quot;domainMembership&quot;: { # A G Suite Domain membership. # Output only. The domain membership.
-        &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s G Suite domain.
+      &quot;domainMembership&quot;: { # A Google Workspace Domain membership. # Output only. The domain membership.
+        &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s Google Workspace domain.
       },
       &quot;metadata&quot;: { # Metadata about a field. # Metadata about the membership.
         &quot;primary&quot;: True or False, # True if the field is the primary field; false if the field is a secondary field.
@@ -1395,8 +1395,8 @@
             &quot;contactGroupId&quot;: &quot;A String&quot;, # Output only. The contact group ID for the contact group membership.
             &quot;contactGroupResourceName&quot;: &quot;A String&quot;, # The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/{contact_group_id}`. Only contact_group_resource_name can be used for modifying memberships. Any contact group membership can be removed, but only user group or &quot;myContacts&quot; or &quot;starred&quot; system groups memberships can be added. A contact must always have at least one contact group membership.
           },
-          &quot;domainMembership&quot;: { # A G Suite Domain membership. # Output only. The domain membership.
-            &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s G Suite domain.
+          &quot;domainMembership&quot;: { # A Google Workspace Domain membership. # Output only. The domain membership.
+            &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s Google Workspace domain.
           },
           &quot;metadata&quot;: { # Metadata about a field. # Metadata about the membership.
             &quot;primary&quot;: True or False, # True if the field is the primary field; false if the field is a secondary field.
@@ -1849,7 +1849,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. The query matches on a contact&#x27;s `names`, `emailAddresses`, and `phoneNumbers` fields that are from the OTHER_CONTACT source.
+  <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. **IMPORTANT**: Before searching, clients should send a warmup request with an empty query to update the cache. See https://developers.google.com/people/v1/other-contacts#search_the_users_other_contacts
 
 Args:
   pageSize: integer, Optional. The number of results to return. Defaults to 10 if field is not set, or set to 0. Values greater than 10 will be capped to 10.
@@ -2275,8 +2275,8 @@
               &quot;contactGroupId&quot;: &quot;A String&quot;, # Output only. The contact group ID for the contact group membership.
               &quot;contactGroupResourceName&quot;: &quot;A String&quot;, # The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/{contact_group_id}`. Only contact_group_resource_name can be used for modifying memberships. Any contact group membership can be removed, but only user group or &quot;myContacts&quot; or &quot;starred&quot; system groups memberships can be added. A contact must always have at least one contact group membership.
             },
-            &quot;domainMembership&quot;: { # A G Suite Domain membership. # Output only. The domain membership.
-              &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s G Suite domain.
+            &quot;domainMembership&quot;: { # A Google Workspace Domain membership. # Output only. The domain membership.
+              &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s Google Workspace domain.
             },
             &quot;metadata&quot;: { # Metadata about a field. # Metadata about the membership.
               &quot;primary&quot;: True or False, # True if the field is the primary field; false if the field is a secondary field.
diff --git a/docs/dyn/people_v1.people.connections.html b/docs/dyn/people_v1.people.connections.html
index c4b4393..b6c29e2 100644
--- a/docs/dyn/people_v1.people.connections.html
+++ b/docs/dyn/people_v1.people.connections.html
@@ -532,8 +532,8 @@
             &quot;contactGroupId&quot;: &quot;A String&quot;, # Output only. The contact group ID for the contact group membership.
             &quot;contactGroupResourceName&quot;: &quot;A String&quot;, # The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/{contact_group_id}`. Only contact_group_resource_name can be used for modifying memberships. Any contact group membership can be removed, but only user group or &quot;myContacts&quot; or &quot;starred&quot; system groups memberships can be added. A contact must always have at least one contact group membership.
           },
-          &quot;domainMembership&quot;: { # A G Suite Domain membership. # Output only. The domain membership.
-            &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s G Suite domain.
+          &quot;domainMembership&quot;: { # A Google Workspace Domain membership. # Output only. The domain membership.
+            &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s Google Workspace domain.
           },
           &quot;metadata&quot;: { # Metadata about a field. # Metadata about the membership.
             &quot;primary&quot;: True or False, # True if the field is the primary field; false if the field is a secondary field.
diff --git a/docs/dyn/people_v1.people.html b/docs/dyn/people_v1.people.html
index 3ca99c8..9eda07a 100644
--- a/docs/dyn/people_v1.people.html
+++ b/docs/dyn/people_v1.people.html
@@ -114,7 +114,7 @@
 <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, 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="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. **IMPORTANT**: Before searching, clients should send a warmup request with an empty query to update the cache. See https://developers.google.com/people/v1/contacts#search_the_users_contacts</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>
@@ -548,8 +548,8 @@
               &quot;contactGroupId&quot;: &quot;A String&quot;, # Output only. The contact group ID for the contact group membership.
               &quot;contactGroupResourceName&quot;: &quot;A String&quot;, # The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/{contact_group_id}`. Only contact_group_resource_name can be used for modifying memberships. Any contact group membership can be removed, but only user group or &quot;myContacts&quot; or &quot;starred&quot; system groups memberships can be added. A contact must always have at least one contact group membership.
             },
-            &quot;domainMembership&quot;: { # A G Suite Domain membership. # Output only. The domain membership.
-              &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s G Suite domain.
+            &quot;domainMembership&quot;: { # A Google Workspace Domain membership. # Output only. The domain membership.
+              &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s Google Workspace domain.
             },
             &quot;metadata&quot;: { # Metadata about a field. # Metadata about the membership.
               &quot;primary&quot;: True or False, # True if the field is the primary field; false if the field is a secondary field.
@@ -1410,8 +1410,8 @@
               &quot;contactGroupId&quot;: &quot;A String&quot;, # Output only. The contact group ID for the contact group membership.
               &quot;contactGroupResourceName&quot;: &quot;A String&quot;, # The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/{contact_group_id}`. Only contact_group_resource_name can be used for modifying memberships. Any contact group membership can be removed, but only user group or &quot;myContacts&quot; or &quot;starred&quot; system groups memberships can be added. A contact must always have at least one contact group membership.
             },
-            &quot;domainMembership&quot;: { # A G Suite Domain membership. # Output only. The domain membership.
-              &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s G Suite domain.
+            &quot;domainMembership&quot;: { # A Google Workspace Domain membership. # Output only. The domain membership.
+              &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s Google Workspace domain.
             },
             &quot;metadata&quot;: { # Metadata about a field. # Metadata about the membership.
               &quot;primary&quot;: True or False, # True if the field is the primary field; false if the field is a secondary field.
@@ -2303,8 +2303,8 @@
             &quot;contactGroupId&quot;: &quot;A String&quot;, # Output only. The contact group ID for the contact group membership.
             &quot;contactGroupResourceName&quot;: &quot;A String&quot;, # The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/{contact_group_id}`. Only contact_group_resource_name can be used for modifying memberships. Any contact group membership can be removed, but only user group or &quot;myContacts&quot; or &quot;starred&quot; system groups memberships can be added. A contact must always have at least one contact group membership.
           },
-          &quot;domainMembership&quot;: { # A G Suite Domain membership. # Output only. The domain membership.
-            &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s G Suite domain.
+          &quot;domainMembership&quot;: { # A Google Workspace Domain membership. # Output only. The domain membership.
+            &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s Google Workspace domain.
           },
           &quot;metadata&quot;: { # Metadata about a field. # Metadata about the membership.
             &quot;primary&quot;: True or False, # True if the field is the primary field; false if the field is a secondary field.
@@ -3165,8 +3165,8 @@
               &quot;contactGroupId&quot;: &quot;A String&quot;, # Output only. The contact group ID for the contact group membership.
               &quot;contactGroupResourceName&quot;: &quot;A String&quot;, # The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/{contact_group_id}`. Only contact_group_resource_name can be used for modifying memberships. Any contact group membership can be removed, but only user group or &quot;myContacts&quot; or &quot;starred&quot; system groups memberships can be added. A contact must always have at least one contact group membership.
             },
-            &quot;domainMembership&quot;: { # A G Suite Domain membership. # Output only. The domain membership.
-              &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s G Suite domain.
+            &quot;domainMembership&quot;: { # A Google Workspace Domain membership. # Output only. The domain membership.
+              &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s Google Workspace domain.
             },
             &quot;metadata&quot;: { # Metadata about a field. # Metadata about the membership.
               &quot;primary&quot;: True or False, # True if the field is the primary field; false if the field is a secondary field.
@@ -4035,8 +4035,8 @@
         &quot;contactGroupId&quot;: &quot;A String&quot;, # Output only. The contact group ID for the contact group membership.
         &quot;contactGroupResourceName&quot;: &quot;A String&quot;, # The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/{contact_group_id}`. Only contact_group_resource_name can be used for modifying memberships. Any contact group membership can be removed, but only user group or &quot;myContacts&quot; or &quot;starred&quot; system groups memberships can be added. A contact must always have at least one contact group membership.
       },
-      &quot;domainMembership&quot;: { # A G Suite Domain membership. # Output only. The domain membership.
-        &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s G Suite domain.
+      &quot;domainMembership&quot;: { # A Google Workspace Domain membership. # Output only. The domain membership.
+        &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s Google Workspace domain.
       },
       &quot;metadata&quot;: { # Metadata about a field. # Metadata about the membership.
         &quot;primary&quot;: True or False, # True if the field is the primary field; false if the field is a secondary field.
@@ -4893,8 +4893,8 @@
         &quot;contactGroupId&quot;: &quot;A String&quot;, # Output only. The contact group ID for the contact group membership.
         &quot;contactGroupResourceName&quot;: &quot;A String&quot;, # The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/{contact_group_id}`. Only contact_group_resource_name can be used for modifying memberships. Any contact group membership can be removed, but only user group or &quot;myContacts&quot; or &quot;starred&quot; system groups memberships can be added. A contact must always have at least one contact group membership.
       },
-      &quot;domainMembership&quot;: { # A G Suite Domain membership. # Output only. The domain membership.
-        &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s G Suite domain.
+      &quot;domainMembership&quot;: { # A Google Workspace Domain membership. # Output only. The domain membership.
+        &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s Google Workspace domain.
       },
       &quot;metadata&quot;: { # Metadata about a field. # Metadata about the membership.
         &quot;primary&quot;: True or False, # True if the field is the primary field; false if the field is a secondary field.
@@ -5777,8 +5777,8 @@
           &quot;contactGroupId&quot;: &quot;A String&quot;, # Output only. The contact group ID for the contact group membership.
           &quot;contactGroupResourceName&quot;: &quot;A String&quot;, # The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/{contact_group_id}`. Only contact_group_resource_name can be used for modifying memberships. Any contact group membership can be removed, but only user group or &quot;myContacts&quot; or &quot;starred&quot; system groups memberships can be added. A contact must always have at least one contact group membership.
         },
-        &quot;domainMembership&quot;: { # A G Suite Domain membership. # Output only. The domain membership.
-          &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s G Suite domain.
+        &quot;domainMembership&quot;: { # A Google Workspace Domain membership. # Output only. The domain membership.
+          &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s Google Workspace domain.
         },
         &quot;metadata&quot;: { # Metadata about a field. # Metadata about the membership.
           &quot;primary&quot;: True or False, # True if the field is the primary field; false if the field is a secondary field.
@@ -6644,8 +6644,8 @@
         &quot;contactGroupId&quot;: &quot;A String&quot;, # Output only. The contact group ID for the contact group membership.
         &quot;contactGroupResourceName&quot;: &quot;A String&quot;, # The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/{contact_group_id}`. Only contact_group_resource_name can be used for modifying memberships. Any contact group membership can be removed, but only user group or &quot;myContacts&quot; or &quot;starred&quot; system groups memberships can be added. A contact must always have at least one contact group membership.
       },
-      &quot;domainMembership&quot;: { # A G Suite Domain membership. # Output only. The domain membership.
-        &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s G Suite domain.
+      &quot;domainMembership&quot;: { # A Google Workspace Domain membership. # Output only. The domain membership.
+        &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s Google Workspace domain.
       },
       &quot;metadata&quot;: { # Metadata about a field. # Metadata about the membership.
         &quot;primary&quot;: True or False, # True if the field is the primary field; false if the field is a secondary field.
@@ -7514,8 +7514,8 @@
               &quot;contactGroupId&quot;: &quot;A String&quot;, # Output only. The contact group ID for the contact group membership.
               &quot;contactGroupResourceName&quot;: &quot;A String&quot;, # The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/{contact_group_id}`. Only contact_group_resource_name can be used for modifying memberships. Any contact group membership can be removed, but only user group or &quot;myContacts&quot; or &quot;starred&quot; system groups memberships can be added. A contact must always have at least one contact group membership.
             },
-            &quot;domainMembership&quot;: { # A G Suite Domain membership. # Output only. The domain membership.
-              &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s G Suite domain.
+            &quot;domainMembership&quot;: { # A Google Workspace Domain membership. # Output only. The domain membership.
+              &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s Google Workspace domain.
             },
             &quot;metadata&quot;: { # Metadata about a field. # Metadata about the membership.
               &quot;primary&quot;: True or False, # True if the field is the primary field; false if the field is a secondary field.
@@ -7978,8 +7978,8 @@
   sources: string, Required. Directory sources to return. (repeated)
     Allowed values
       DIRECTORY_SOURCE_TYPE_UNSPECIFIED - Unspecified.
-      DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT - G Suite domain shared contact.
-      DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE - G Suite domain profile.
+      DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT - Google Workspace domain shared contact.
+      DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE - Google Workspace domain profile.
   syncToken: string, Optional. A sync token, received from a previous `ListDirectoryPeople` call. Provide this to retrieve only the resources changed since the last request. When syncing, all other parameters provided to `ListDirectoryPeople` must match the call that provided the sync token.
   x__xgafv: string, V1 error format.
     Allowed values
@@ -8402,8 +8402,8 @@
             &quot;contactGroupId&quot;: &quot;A String&quot;, # Output only. The contact group ID for the contact group membership.
             &quot;contactGroupResourceName&quot;: &quot;A String&quot;, # The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/{contact_group_id}`. Only contact_group_resource_name can be used for modifying memberships. Any contact group membership can be removed, but only user group or &quot;myContacts&quot; or &quot;starred&quot; system groups memberships can be added. A contact must always have at least one contact group membership.
           },
-          &quot;domainMembership&quot;: { # A G Suite Domain membership. # Output only. The domain membership.
-            &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s G Suite domain.
+          &quot;domainMembership&quot;: { # A Google Workspace Domain membership. # Output only. The domain membership.
+            &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s Google Workspace domain.
           },
           &quot;metadata&quot;: { # Metadata about a field. # Metadata about the membership.
             &quot;primary&quot;: True or False, # True if the field is the primary field; false if the field is a secondary field.
@@ -8855,7 +8855,7 @@
 
 <div class="method">
     <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.
+  <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. **IMPORTANT**: Before searching, clients should send a warmup request with an empty query to update the cache. See https://developers.google.com/people/v1/contacts#search_the_users_contacts
 
 Args:
   pageSize: integer, Optional. The number of results to return. Defaults to 10 if field is not set, or set to 0. Values greater than 10 will be capped to 10.
@@ -9287,8 +9287,8 @@
               &quot;contactGroupId&quot;: &quot;A String&quot;, # Output only. The contact group ID for the contact group membership.
               &quot;contactGroupResourceName&quot;: &quot;A String&quot;, # The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/{contact_group_id}`. Only contact_group_resource_name can be used for modifying memberships. Any contact group membership can be removed, but only user group or &quot;myContacts&quot; or &quot;starred&quot; system groups memberships can be added. A contact must always have at least one contact group membership.
             },
-            &quot;domainMembership&quot;: { # A G Suite Domain membership. # Output only. The domain membership.
-              &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s G Suite domain.
+            &quot;domainMembership&quot;: { # A Google Workspace Domain membership. # Output only. The domain membership.
+              &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s Google Workspace domain.
             },
             &quot;metadata&quot;: { # Metadata about a field. # Metadata about the membership.
               &quot;primary&quot;: True or False, # True if the field is the primary field; false if the field is a secondary field.
@@ -9741,8 +9741,8 @@
   sources: string, Required. Directory sources to return. (repeated)
     Allowed values
       DIRECTORY_SOURCE_TYPE_UNSPECIFIED - Unspecified.
-      DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT - G Suite domain shared contact.
-      DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE - G Suite domain profile.
+      DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT - Google Workspace domain shared contact.
+      DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE - Google Workspace domain profile.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -10163,8 +10163,8 @@
             &quot;contactGroupId&quot;: &quot;A String&quot;, # Output only. The contact group ID for the contact group membership.
             &quot;contactGroupResourceName&quot;: &quot;A String&quot;, # The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/{contact_group_id}`. Only contact_group_resource_name can be used for modifying memberships. Any contact group membership can be removed, but only user group or &quot;myContacts&quot; or &quot;starred&quot; system groups memberships can be added. A contact must always have at least one contact group membership.
           },
-          &quot;domainMembership&quot;: { # A G Suite Domain membership. # Output only. The domain membership.
-            &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s G Suite domain.
+          &quot;domainMembership&quot;: { # A Google Workspace Domain membership. # Output only. The domain membership.
+            &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s Google Workspace domain.
           },
           &quot;metadata&quot;: { # Metadata about a field. # Metadata about the membership.
             &quot;primary&quot;: True or False, # True if the field is the primary field; false if the field is a secondary field.
@@ -11033,8 +11033,8 @@
         &quot;contactGroupId&quot;: &quot;A String&quot;, # Output only. The contact group ID for the contact group membership.
         &quot;contactGroupResourceName&quot;: &quot;A String&quot;, # The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/{contact_group_id}`. Only contact_group_resource_name can be used for modifying memberships. Any contact group membership can be removed, but only user group or &quot;myContacts&quot; or &quot;starred&quot; system groups memberships can be added. A contact must always have at least one contact group membership.
       },
-      &quot;domainMembership&quot;: { # A G Suite Domain membership. # Output only. The domain membership.
-        &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s G Suite domain.
+      &quot;domainMembership&quot;: { # A Google Workspace Domain membership. # Output only. The domain membership.
+        &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s Google Workspace domain.
       },
       &quot;metadata&quot;: { # Metadata about a field. # Metadata about the membership.
         &quot;primary&quot;: True or False, # True if the field is the primary field; false if the field is a secondary field.
@@ -11892,8 +11892,8 @@
         &quot;contactGroupId&quot;: &quot;A String&quot;, # Output only. The contact group ID for the contact group membership.
         &quot;contactGroupResourceName&quot;: &quot;A String&quot;, # The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/{contact_group_id}`. Only contact_group_resource_name can be used for modifying memberships. Any contact group membership can be removed, but only user group or &quot;myContacts&quot; or &quot;starred&quot; system groups memberships can be added. A contact must always have at least one contact group membership.
       },
-      &quot;domainMembership&quot;: { # A G Suite Domain membership. # Output only. The domain membership.
-        &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s G Suite domain.
+      &quot;domainMembership&quot;: { # A Google Workspace Domain membership. # Output only. The domain membership.
+        &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s Google Workspace domain.
       },
       &quot;metadata&quot;: { # Metadata about a field. # Metadata about the membership.
         &quot;primary&quot;: True or False, # True if the field is the primary field; false if the field is a secondary field.
@@ -12762,8 +12762,8 @@
           &quot;contactGroupId&quot;: &quot;A String&quot;, # Output only. The contact group ID for the contact group membership.
           &quot;contactGroupResourceName&quot;: &quot;A String&quot;, # The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/{contact_group_id}`. Only contact_group_resource_name can be used for modifying memberships. Any contact group membership can be removed, but only user group or &quot;myContacts&quot; or &quot;starred&quot; system groups memberships can be added. A contact must always have at least one contact group membership.
         },
-        &quot;domainMembership&quot;: { # A G Suite Domain membership. # Output only. The domain membership.
-          &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s G Suite domain.
+        &quot;domainMembership&quot;: { # A Google Workspace Domain membership. # Output only. The domain membership.
+          &quot;inViewerDomain&quot;: True or False, # True if the person is in the viewer&#x27;s Google Workspace domain.
         },
         &quot;metadata&quot;: { # Metadata about a field. # Metadata about the membership.
           &quot;primary&quot;: True or False, # True if the field is the primary field; false if the field is a secondary field.
diff --git a/googleapiclient/discovery_cache/documents/acceleratedmobilepageurl.v1.json b/googleapiclient/discovery_cache/documents/acceleratedmobilepageurl.v1.json
index 5e85805..7d24386 100644
--- a/googleapiclient/discovery_cache/documents/acceleratedmobilepageurl.v1.json
+++ b/googleapiclient/discovery_cache/documents/acceleratedmobilepageurl.v1.json
@@ -115,7 +115,7 @@
       }
     }
   },
-  "revision": "20210605",
+  "revision": "20210607",
   "rootUrl": "https://acceleratedmobilepageurl.googleapis.com/",
   "schemas": {
     "AmpUrl": {
diff --git a/googleapiclient/discovery_cache/documents/accessapproval.v1.json b/googleapiclient/discovery_cache/documents/accessapproval.v1.json
index ac6cbb5..c8e2623 100644
--- a/googleapiclient/discovery_cache/documents/accessapproval.v1.json
+++ b/googleapiclient/discovery_cache/documents/accessapproval.v1.json
@@ -754,7 +754,7 @@
       }
     }
   },
-  "revision": "20210513",
+  "revision": "20210602",
   "rootUrl": "https://accessapproval.googleapis.com/",
   "schemas": {
     "AccessApprovalSettings": {
diff --git a/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.2.json b/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.2.json
index f1fb6c5..bfe4f1f 100644
--- a/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.2.json
+++ b/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.2.json
@@ -15,7 +15,7 @@
   "description": "Accesses your bidding-account information, submits creatives for validation, finds available direct deals, and retrieves performance reports.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/ad-exchange/buyer-rest",
-  "etag": "\"uWj2hSb4GVjzdDlAnRd2gbM1ZQ8/03tOmo6csbp08dX8YOLMiSRAfQ4\"",
+  "etag": "\"uWj2hSb4GVjzdDlAnRd2gbM1ZQ8/mbQYOJ65XD5uLwNti-HeKxc8Alw\"",
   "icons": {
     "x16": "https://www.google.com/images/icons/product/doubleclick-16.gif",
     "x32": "https://www.google.com/images/icons/product/doubleclick-32.gif"
@@ -259,7 +259,7 @@
       }
     }
   },
-  "revision": "20210605",
+  "revision": "20210607",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "Account": {
diff --git a/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.3.json b/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.3.json
index a224422..8855ca2 100644
--- a/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.3.json
+++ b/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.3.json
@@ -15,7 +15,7 @@
   "description": "Accesses your bidding-account information, submits creatives for validation, finds available direct deals, and retrieves performance reports.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/ad-exchange/buyer-rest",
-  "etag": "\"uWj2hSb4GVjzdDlAnRd2gbM1ZQ8/tTMh_DXlEgg_ueKY0mdzEvTh4A8\"",
+  "etag": "\"uWj2hSb4GVjzdDlAnRd2gbM1ZQ8/6HG3hQr--1DO5hZVlMglEnX4SGE\"",
   "icons": {
     "x16": "https://www.google.com/images/icons/product/doubleclick-16.gif",
     "x32": "https://www.google.com/images/icons/product/doubleclick-32.gif"
@@ -699,7 +699,7 @@
       }
     }
   },
-  "revision": "20210605",
+  "revision": "20210607",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "Account": {
diff --git a/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.4.json b/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.4.json
index ec82262..dcd72b1 100644
--- a/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.4.json
+++ b/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.4.json
@@ -15,7 +15,7 @@
   "description": "Accesses your bidding-account information, submits creatives for validation, finds available direct deals, and retrieves performance reports.",
   "discoveryVersion": "v1",
   "documentationLink": "https://developers.google.com/ad-exchange/buyer-rest",
-  "etag": "\"uWj2hSb4GVjzdDlAnRd2gbM1ZQ8/dOCFLZ73y7fg6pbfJ8ZiPg3aWe8\"",
+  "etag": "\"uWj2hSb4GVjzdDlAnRd2gbM1ZQ8/g2tPv1tM600rI87F20TINqxamcY\"",
   "icons": {
     "x16": "https://www.google.com/images/icons/product/doubleclick-16.gif",
     "x32": "https://www.google.com/images/icons/product/doubleclick-32.gif"
@@ -1255,7 +1255,7 @@
       }
     }
   },
-  "revision": "20210605",
+  "revision": "20210607",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "Account": {
diff --git a/googleapiclient/discovery_cache/documents/admob.v1.json b/googleapiclient/discovery_cache/documents/admob.v1.json
index fa2dc35..6ee6bb8 100644
--- a/googleapiclient/discovery_cache/documents/admob.v1.json
+++ b/googleapiclient/discovery_cache/documents/admob.v1.json
@@ -321,7 +321,7 @@
       }
     }
   },
-  "revision": "20210605",
+  "revision": "20210608",
   "rootUrl": "https://admob.googleapis.com/",
   "schemas": {
     "AdUnit": {
diff --git a/googleapiclient/discovery_cache/documents/admob.v1beta.json b/googleapiclient/discovery_cache/documents/admob.v1beta.json
index 5afe73f..7e66085 100644
--- a/googleapiclient/discovery_cache/documents/admob.v1beta.json
+++ b/googleapiclient/discovery_cache/documents/admob.v1beta.json
@@ -321,7 +321,7 @@
       }
     }
   },
-  "revision": "20210605",
+  "revision": "20210608",
   "rootUrl": "https://admob.googleapis.com/",
   "schemas": {
     "AdUnit": {
diff --git a/googleapiclient/discovery_cache/documents/adsense.v2.json b/googleapiclient/discovery_cache/documents/adsense.v2.json
index a37edce..f38b10d 100644
--- a/googleapiclient/discovery_cache/documents/adsense.v2.json
+++ b/googleapiclient/discovery_cache/documents/adsense.v2.json
@@ -1559,7 +1559,7 @@
       }
     }
   },
-  "revision": "20210605",
+  "revision": "20210607",
   "rootUrl": "https://adsense.googleapis.com/",
   "schemas": {
     "Account": {
diff --git a/googleapiclient/discovery_cache/documents/analyticsadmin.v1alpha.json b/googleapiclient/discovery_cache/documents/analyticsadmin.v1alpha.json
index 5213aae..e3721ac 100644
--- a/googleapiclient/discovery_cache/documents/analyticsadmin.v1alpha.json
+++ b/googleapiclient/discovery_cache/documents/analyticsadmin.v1alpha.json
@@ -2796,7 +2796,7 @@
       }
     }
   },
-  "revision": "20210602",
+  "revision": "20210608",
   "rootUrl": "https://analyticsadmin.googleapis.com/",
   "schemas": {
     "GoogleAnalyticsAdminV1alphaAccount": {
@@ -3464,24 +3464,6 @@
           "readOnly": true,
           "type": "string"
         },
-        "maximumUserAccess": {
-          "description": "Maximum user access to the GA4 property allowed to admins of the linked Firebase project.",
-          "enum": [
-            "MAXIMUM_USER_ACCESS_UNSPECIFIED",
-            "NO_ACCESS",
-            "READ_AND_ANALYZE",
-            "EDITOR_WITHOUT_LINK_MANAGEMENT",
-            "EDITOR_INCLUDING_LINK_MANAGEMENT"
-          ],
-          "enumDescriptions": [
-            "Unspecified maximum user access.",
-            "Firebase users have no access to the Analytics property.",
-            "Firebase users have Read & Analyze access to the Analytics property.",
-            "Firebase users have edit access to the Analytics property, but may not manage the Firebase link.",
-            "Firebase users have edit access to the Analytics property and may manage the Firebase link."
-          ],
-          "type": "string"
-        },
         "name": {
           "description": "Output only. Example format: properties/1234/firebaseLinks/5678",
           "readOnly": true,
diff --git a/googleapiclient/discovery_cache/documents/analyticsdata.v1beta.json b/googleapiclient/discovery_cache/documents/analyticsdata.v1beta.json
index 2dc22de..3e664ae 100644
--- a/googleapiclient/discovery_cache/documents/analyticsdata.v1beta.json
+++ b/googleapiclient/discovery_cache/documents/analyticsdata.v1beta.json
@@ -284,7 +284,7 @@
       }
     }
   },
-  "revision": "20210604",
+  "revision": "20210605",
   "rootUrl": "https://analyticsdata.googleapis.com/",
   "schemas": {
     "BatchRunPivotReportsRequest": {
diff --git a/googleapiclient/discovery_cache/documents/androidpublisher.v3.json b/googleapiclient/discovery_cache/documents/androidpublisher.v3.json
index 06c2bf7..8616a9c 100644
--- a/googleapiclient/discovery_cache/documents/androidpublisher.v3.json
+++ b/googleapiclient/discovery_cache/documents/androidpublisher.v3.json
@@ -2676,7 +2676,7 @@
       }
     }
   },
-  "revision": "20210605",
+  "revision": "20210608",
   "rootUrl": "https://androidpublisher.googleapis.com/",
   "schemas": {
     "Apk": {
diff --git a/googleapiclient/discovery_cache/documents/apikeys.v2.json b/googleapiclient/discovery_cache/documents/apikeys.v2.json
index 381df34..902fe70 100644
--- a/googleapiclient/discovery_cache/documents/apikeys.v2.json
+++ b/googleapiclient/discovery_cache/documents/apikeys.v2.json
@@ -424,7 +424,7 @@
       }
     }
   },
-  "revision": "20210604",
+  "revision": "20210607",
   "rootUrl": "https://apikeys.googleapis.com/",
   "schemas": {
     "Operation": {
diff --git a/googleapiclient/discovery_cache/documents/area120tables.v1alpha1.json b/googleapiclient/discovery_cache/documents/area120tables.v1alpha1.json
index a32c135..c39fe96 100644
--- a/googleapiclient/discovery_cache/documents/area120tables.v1alpha1.json
+++ b/googleapiclient/discovery_cache/documents/area120tables.v1alpha1.json
@@ -586,7 +586,7 @@
       }
     }
   },
-  "revision": "20210604",
+  "revision": "20210607",
   "rootUrl": "https://area120tables.googleapis.com/",
   "schemas": {
     "BatchCreateRowsRequest": {
diff --git a/googleapiclient/discovery_cache/documents/blogger.v2.json b/googleapiclient/discovery_cache/documents/blogger.v2.json
index 7ddcc2b..e20694c 100644
--- a/googleapiclient/discovery_cache/documents/blogger.v2.json
+++ b/googleapiclient/discovery_cache/documents/blogger.v2.json
@@ -401,7 +401,7 @@
       }
     }
   },
-  "revision": "20210604",
+  "revision": "20210608",
   "rootUrl": "https://blogger.googleapis.com/",
   "schemas": {
     "Blog": {
diff --git a/googleapiclient/discovery_cache/documents/blogger.v3.json b/googleapiclient/discovery_cache/documents/blogger.v3.json
index 7fa5dab..6d49c22 100644
--- a/googleapiclient/discovery_cache/documents/blogger.v3.json
+++ b/googleapiclient/discovery_cache/documents/blogger.v3.json
@@ -1678,7 +1678,7 @@
       }
     }
   },
-  "revision": "20210604",
+  "revision": "20210608",
   "rootUrl": "https://blogger.googleapis.com/",
   "schemas": {
     "Blog": {
diff --git a/googleapiclient/discovery_cache/documents/books.v1.json b/googleapiclient/discovery_cache/documents/books.v1.json
index ac85ac6..e31d327 100644
--- a/googleapiclient/discovery_cache/documents/books.v1.json
+++ b/googleapiclient/discovery_cache/documents/books.v1.json
@@ -2671,7 +2671,7 @@
       }
     }
   },
-  "revision": "20210601",
+  "revision": "20210606",
   "rootUrl": "https://books.googleapis.com/",
   "schemas": {
     "Annotation": {
diff --git a/googleapiclient/discovery_cache/documents/calendar.v3.json b/googleapiclient/discovery_cache/documents/calendar.v3.json
index 7d7e0f6..81db4a4 100644
--- a/googleapiclient/discovery_cache/documents/calendar.v3.json
+++ b/googleapiclient/discovery_cache/documents/calendar.v3.json
@@ -1723,7 +1723,7 @@
       }
     }
   },
-  "revision": "20210605",
+  "revision": "20210606",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "Acl": {
diff --git a/googleapiclient/discovery_cache/documents/chat.v1.json b/googleapiclient/discovery_cache/documents/chat.v1.json
index 9d16fce..1c425a6 100644
--- a/googleapiclient/discovery_cache/documents/chat.v1.json
+++ b/googleapiclient/discovery_cache/documents/chat.v1.json
@@ -601,7 +601,7 @@
       }
     }
   },
-  "revision": "20210528",
+  "revision": "20210602",
   "rootUrl": "https://chat.googleapis.com/",
   "schemas": {
     "ActionParameter": {
diff --git a/googleapiclient/discovery_cache/documents/chromemanagement.v1.json b/googleapiclient/discovery_cache/documents/chromemanagement.v1.json
index 9f7b61c..6aa07d0 100644
--- a/googleapiclient/discovery_cache/documents/chromemanagement.v1.json
+++ b/googleapiclient/discovery_cache/documents/chromemanagement.v1.json
@@ -288,7 +288,7 @@
       }
     }
   },
-  "revision": "20210604",
+  "revision": "20210607",
   "rootUrl": "https://chromemanagement.googleapis.com/",
   "schemas": {
     "GoogleChromeManagementV1BrowserVersion": {
diff --git a/googleapiclient/discovery_cache/documents/chromepolicy.v1.json b/googleapiclient/discovery_cache/documents/chromepolicy.v1.json
index a2c8cf7..cbdfaad 100644
--- a/googleapiclient/discovery_cache/documents/chromepolicy.v1.json
+++ b/googleapiclient/discovery_cache/documents/chromepolicy.v1.json
@@ -324,7 +324,7 @@
       }
     }
   },
-  "revision": "20210604",
+  "revision": "20210607",
   "rootUrl": "https://chromepolicy.googleapis.com/",
   "schemas": {
     "GoogleChromePolicyV1AdditionalTargetKeyName": {
diff --git a/googleapiclient/discovery_cache/documents/classroom.v1.json b/googleapiclient/discovery_cache/documents/classroom.v1.json
index 5412e4d..21a7acd 100644
--- a/googleapiclient/discovery_cache/documents/classroom.v1.json
+++ b/googleapiclient/discovery_cache/documents/classroom.v1.json
@@ -2400,7 +2400,7 @@
       }
     }
   },
-  "revision": "20210602",
+  "revision": "20210603",
   "rootUrl": "https://classroom.googleapis.com/",
   "schemas": {
     "Announcement": {
diff --git a/googleapiclient/discovery_cache/documents/cloudasset.v1.json b/googleapiclient/discovery_cache/documents/cloudasset.v1.json
index bc8475b..fcadc40 100644
--- a/googleapiclient/discovery_cache/documents/cloudasset.v1.json
+++ b/googleapiclient/discovery_cache/documents/cloudasset.v1.json
@@ -694,7 +694,7 @@
       }
     }
   },
-  "revision": "20210527",
+  "revision": "20210604",
   "rootUrl": "https://cloudasset.googleapis.com/",
   "schemas": {
     "AccessSelector": {
@@ -1100,7 +1100,7 @@
         },
         "condition": {
           "$ref": "Expr",
-          "description": "A condition which determines whether an asset update should be published. If specified, an asset will be returned only when the expression evaluates to true. When set, `expression` field in the `Expr` must be a valid [CEL expression] (https://github.com/google/cel-spec) on a TemporalAsset with name `temporal_asset`. Example: a Feed with expression (\"temporal_asset.deleted == true\") will only publish Asset deletions. Other fields of `Expr` are optional. See our [user guide](https://cloud.google.com/asset-inventory/docs/monitoring-asset-changes#feed_with_condition) for detailed instructions."
+          "description": "A condition which determines whether an asset update should be published. If specified, an asset will be returned only when the expression evaluates to true. When set, `expression` field in the `Expr` must be a valid [CEL expression] (https://github.com/google/cel-spec) on a TemporalAsset with name `temporal_asset`. Example: a Feed with expression (\"temporal_asset.deleted == true\") will only publish Asset deletions. Other fields of `Expr` are optional. See our [user guide](https://cloud.google.com/asset-inventory/docs/monitoring-asset-changes-with-condition) for detailed instructions."
         },
         "contentType": {
           "description": "Asset content type. If not specified, no content but the asset name and type will be returned.",
diff --git a/googleapiclient/discovery_cache/documents/cloudasset.v1beta1.json b/googleapiclient/discovery_cache/documents/cloudasset.v1beta1.json
index 5c92767..361c89b 100644
--- a/googleapiclient/discovery_cache/documents/cloudasset.v1beta1.json
+++ b/googleapiclient/discovery_cache/documents/cloudasset.v1beta1.json
@@ -411,7 +411,7 @@
       }
     }
   },
-  "revision": "20210527",
+  "revision": "20210604",
   "rootUrl": "https://cloudasset.googleapis.com/",
   "schemas": {
     "AnalyzeIamPolicyLongrunningResponse": {
diff --git a/googleapiclient/discovery_cache/documents/cloudasset.v1p1beta1.json b/googleapiclient/discovery_cache/documents/cloudasset.v1p1beta1.json
index 61e3064..2669d7c 100644
--- a/googleapiclient/discovery_cache/documents/cloudasset.v1p1beta1.json
+++ b/googleapiclient/discovery_cache/documents/cloudasset.v1p1beta1.json
@@ -207,7 +207,7 @@
       }
     }
   },
-  "revision": "20210527",
+  "revision": "20210604",
   "rootUrl": "https://cloudasset.googleapis.com/",
   "schemas": {
     "AnalyzeIamPolicyLongrunningResponse": {
diff --git a/googleapiclient/discovery_cache/documents/cloudasset.v1p4beta1.json b/googleapiclient/discovery_cache/documents/cloudasset.v1p4beta1.json
index aaf9865..af17a60 100644
--- a/googleapiclient/discovery_cache/documents/cloudasset.v1p4beta1.json
+++ b/googleapiclient/discovery_cache/documents/cloudasset.v1p4beta1.json
@@ -221,7 +221,7 @@
       }
     }
   },
-  "revision": "20210527",
+  "revision": "20210604",
   "rootUrl": "https://cloudasset.googleapis.com/",
   "schemas": {
     "AccessSelector": {
diff --git a/googleapiclient/discovery_cache/documents/cloudasset.v1p5beta1.json b/googleapiclient/discovery_cache/documents/cloudasset.v1p5beta1.json
index dac45ee..bfe66b5 100644
--- a/googleapiclient/discovery_cache/documents/cloudasset.v1p5beta1.json
+++ b/googleapiclient/discovery_cache/documents/cloudasset.v1p5beta1.json
@@ -177,7 +177,7 @@
       }
     }
   },
-  "revision": "20210527",
+  "revision": "20210604",
   "rootUrl": "https://cloudasset.googleapis.com/",
   "schemas": {
     "AnalyzeIamPolicyLongrunningResponse": {
diff --git a/googleapiclient/discovery_cache/documents/cloudasset.v1p7beta1.json b/googleapiclient/discovery_cache/documents/cloudasset.v1p7beta1.json
index 8f587d9..4371205 100644
--- a/googleapiclient/discovery_cache/documents/cloudasset.v1p7beta1.json
+++ b/googleapiclient/discovery_cache/documents/cloudasset.v1p7beta1.json
@@ -167,7 +167,7 @@
       }
     }
   },
-  "revision": "20210527",
+  "revision": "20210604",
   "rootUrl": "https://cloudasset.googleapis.com/",
   "schemas": {
     "AnalyzeIamPolicyLongrunningResponse": {
diff --git a/googleapiclient/discovery_cache/documents/clouddebugger.v2.json b/googleapiclient/discovery_cache/documents/clouddebugger.v2.json
index a5b3b4d..e4db1bf 100644
--- a/googleapiclient/discovery_cache/documents/clouddebugger.v2.json
+++ b/googleapiclient/discovery_cache/documents/clouddebugger.v2.json
@@ -448,7 +448,7 @@
       }
     }
   },
-  "revision": "20210521",
+  "revision": "20210527",
   "rootUrl": "https://clouddebugger.googleapis.com/",
   "schemas": {
     "AliasContext": {
diff --git a/googleapiclient/discovery_cache/documents/cloudfunctions.v1.json b/googleapiclient/discovery_cache/documents/cloudfunctions.v1.json
index 568c514..db566bf 100644
--- a/googleapiclient/discovery_cache/documents/cloudfunctions.v1.json
+++ b/googleapiclient/discovery_cache/documents/cloudfunctions.v1.json
@@ -546,7 +546,7 @@
       }
     }
   },
-  "revision": "20210528",
+  "revision": "20210602",
   "rootUrl": "https://cloudfunctions.googleapis.com/",
   "schemas": {
     "AuditConfig": {
diff --git a/googleapiclient/discovery_cache/documents/cloudshell.v1.json b/googleapiclient/discovery_cache/documents/cloudshell.v1.json
index 8f0a2a7..4c6f55f 100644
--- a/googleapiclient/discovery_cache/documents/cloudshell.v1.json
+++ b/googleapiclient/discovery_cache/documents/cloudshell.v1.json
@@ -374,7 +374,7 @@
       }
     }
   },
-  "revision": "20210522",
+  "revision": "20210605",
   "rootUrl": "https://cloudshell.googleapis.com/",
   "schemas": {
     "AddPublicKeyMetadata": {
diff --git a/googleapiclient/discovery_cache/documents/composer.v1.json b/googleapiclient/discovery_cache/documents/composer.v1.json
index f851db5..162c109 100644
--- a/googleapiclient/discovery_cache/documents/composer.v1.json
+++ b/googleapiclient/discovery_cache/documents/composer.v1.json
@@ -406,7 +406,7 @@
       }
     }
   },
-  "revision": "20210518",
+  "revision": "20210601",
   "rootUrl": "https://composer.googleapis.com/",
   "schemas": {
     "AllowedIpRange": {
diff --git a/googleapiclient/discovery_cache/documents/composer.v1beta1.json b/googleapiclient/discovery_cache/documents/composer.v1beta1.json
index 2653606..c4197fb 100644
--- a/googleapiclient/discovery_cache/documents/composer.v1beta1.json
+++ b/googleapiclient/discovery_cache/documents/composer.v1beta1.json
@@ -111,6 +111,34 @@
           "resources": {
             "environments": {
               "methods": {
+                "checkUpgrade": {
+                  "description": "Check if an upgrade operation on the environment will succeed. In case of problems detailed info can be found in the returned Operation.",
+                  "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:checkUpgrade",
+                  "httpMethod": "POST",
+                  "id": "composer.projects.locations.environments.checkUpgrade",
+                  "parameterOrder": [
+                    "environment"
+                  ],
+                  "parameters": {
+                    "environment": {
+                      "description": "The resource name of the environment to check upgrade for, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"",
+                      "location": "path",
+                      "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$",
+                      "required": true,
+                      "type": "string"
+                    }
+                  },
+                  "path": "v1beta1/{+environment}:checkUpgrade",
+                  "request": {
+                    "$ref": "CheckUpgradeRequest"
+                  },
+                  "response": {
+                    "$ref": "Operation"
+                  },
+                  "scopes": [
+                    "https://www.googleapis.com/auth/cloud-platform"
+                  ]
+                },
                 "create": {
                   "description": "Create a new environment.",
                   "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments",
@@ -434,7 +462,7 @@
       }
     }
   },
-  "revision": "20210518",
+  "revision": "20210601",
   "rootUrl": "https://composer.googleapis.com/",
   "schemas": {
     "AllowedIpRange": {
@@ -452,6 +480,49 @@
       },
       "type": "object"
     },
+    "CheckUpgradeRequest": {
+      "description": "Request to check whether image upgrade will succeed.",
+      "id": "CheckUpgradeRequest",
+      "properties": {
+        "imageVersion": {
+          "description": "The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression `composer-([0-9]+\\.[0-9]+\\.[0-9]+|latest)-airflow-[0-9]+\\.[0-9]+(\\.[0-9]+.*)?`. When used as input, the server also checks if the provided version is supported and denies the request for an unsupported version. The Cloud Composer portion of the version is a [semantic version](https://semver.org) or `latest`. When the patch version is omitted, the current Cloud Composer patch version is selected. When `latest` is provided instead of an explicit version number, the server replaces `latest` with the current Cloud Composer version and stores that version number in the same field. The portion of the image version that follows `airflow-` is an official Apache Airflow repository [release name](https://github.com/apache/incubator-airflow/releases). See also [Version List] (/composer/docs/concepts/versioning/composer-versions).",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "CheckUpgradeResponse": {
+      "description": "Message containing information about the result of an upgrade check operation.",
+      "id": "CheckUpgradeResponse",
+      "properties": {
+        "buildLogUri": {
+          "description": "Output only. Url for a docker build log of an upgraded image.",
+          "readOnly": true,
+          "type": "string"
+        },
+        "containsPypiModulesConflict": {
+          "description": "Output only. Whether build has succeeded or failed on modules conflicts.",
+          "enum": [
+            "CONFLICT_RESULT_UNSPECIFIED",
+            "CONFLICT",
+            "NO_CONFLICT"
+          ],
+          "enumDescriptions": [
+            "It is unknown whether build had conflicts or not.",
+            "There were python packages conflicts.",
+            "There were no python packages conflicts."
+          ],
+          "readOnly": true,
+          "type": "string"
+        },
+        "pypiConflictBuildLogExtract": {
+          "description": "Output only. Extract from a docker image build log containing information about pypi modules conflicts.",
+          "readOnly": true,
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "DatabaseConfig": {
       "description": "The configuration of Cloud SQL instance that is used by the Apache Airflow software.",
       "id": "DatabaseConfig",
diff --git a/googleapiclient/discovery_cache/documents/container.v1.json b/googleapiclient/discovery_cache/documents/container.v1.json
index 67b6e43..8403f68 100644
--- a/googleapiclient/discovery_cache/documents/container.v1.json
+++ b/googleapiclient/discovery_cache/documents/container.v1.json
@@ -2459,7 +2459,7 @@
       }
     }
   },
-  "revision": "20210521",
+  "revision": "20210522",
   "rootUrl": "https://container.googleapis.com/",
   "schemas": {
     "AcceleratorConfig": {
diff --git a/googleapiclient/discovery_cache/documents/container.v1beta1.json b/googleapiclient/discovery_cache/documents/container.v1beta1.json
index 9924353..1674489 100644
--- a/googleapiclient/discovery_cache/documents/container.v1beta1.json
+++ b/googleapiclient/discovery_cache/documents/container.v1beta1.json
@@ -2484,7 +2484,7 @@
       }
     }
   },
-  "revision": "20210521",
+  "revision": "20210522",
   "rootUrl": "https://container.googleapis.com/",
   "schemas": {
     "AcceleratorConfig": {
diff --git a/googleapiclient/discovery_cache/documents/content.v2.1.json b/googleapiclient/discovery_cache/documents/content.v2.1.json
index 7cfc72d..d5a0791 100644
--- a/googleapiclient/discovery_cache/documents/content.v2.1.json
+++ b/googleapiclient/discovery_cache/documents/content.v2.1.json
@@ -5485,7 +5485,7 @@
       }
     }
   },
-  "revision": "20210603",
+  "revision": "20210608",
   "rootUrl": "https://shoppingcontent.googleapis.com/",
   "schemas": {
     "Account": {
diff --git a/googleapiclient/discovery_cache/documents/content.v2.json b/googleapiclient/discovery_cache/documents/content.v2.json
index 8e7bd6f..3bd0941 100644
--- a/googleapiclient/discovery_cache/documents/content.v2.json
+++ b/googleapiclient/discovery_cache/documents/content.v2.json
@@ -3298,7 +3298,7 @@
       }
     }
   },
-  "revision": "20210603",
+  "revision": "20210608",
   "rootUrl": "https://shoppingcontent.googleapis.com/",
   "schemas": {
     "Account": {
diff --git a/googleapiclient/discovery_cache/documents/customsearch.v1.json b/googleapiclient/discovery_cache/documents/customsearch.v1.json
index 8549289..7dec518 100644
--- a/googleapiclient/discovery_cache/documents/customsearch.v1.json
+++ b/googleapiclient/discovery_cache/documents/customsearch.v1.json
@@ -674,7 +674,7 @@
       }
     }
   },
-  "revision": "20210604",
+  "revision": "20210607",
   "rootUrl": "https://customsearch.googleapis.com/",
   "schemas": {
     "Promotion": {
diff --git a/googleapiclient/discovery_cache/documents/domainsrdap.v1.json b/googleapiclient/discovery_cache/documents/domainsrdap.v1.json
index 3f510e5..f691086 100644
--- a/googleapiclient/discovery_cache/documents/domainsrdap.v1.json
+++ b/googleapiclient/discovery_cache/documents/domainsrdap.v1.json
@@ -289,7 +289,7 @@
       }
     }
   },
-  "revision": "20210602",
+  "revision": "20210608",
   "rootUrl": "https://domainsrdap.googleapis.com/",
   "schemas": {
     "HttpBody": {
diff --git a/googleapiclient/discovery_cache/documents/doubleclickbidmanager.v1.1.json b/googleapiclient/discovery_cache/documents/doubleclickbidmanager.v1.1.json
index 139defc..9dc4216 100644
--- a/googleapiclient/discovery_cache/documents/doubleclickbidmanager.v1.1.json
+++ b/googleapiclient/discovery_cache/documents/doubleclickbidmanager.v1.1.json
@@ -280,7 +280,7 @@
       }
     }
   },
-  "revision": "20210525",
+  "revision": "20210601",
   "rootUrl": "https://doubleclickbidmanager.googleapis.com/",
   "schemas": {
     "ChannelGrouping": {
diff --git a/googleapiclient/discovery_cache/documents/doubleclickbidmanager.v1.json b/googleapiclient/discovery_cache/documents/doubleclickbidmanager.v1.json
index c4e5534..11335ef 100644
--- a/googleapiclient/discovery_cache/documents/doubleclickbidmanager.v1.json
+++ b/googleapiclient/discovery_cache/documents/doubleclickbidmanager.v1.json
@@ -96,7 +96,7 @@
   },
   "protocol": "rest",
   "resources": {},
-  "revision": "20210525",
+  "revision": "20210601",
   "rootUrl": "https://doubleclickbidmanager.googleapis.com/",
   "schemas": {},
   "servicePath": "doubleclickbidmanager/v1/",
diff --git a/googleapiclient/discovery_cache/documents/driveactivity.v2.json b/googleapiclient/discovery_cache/documents/driveactivity.v2.json
index eaa1bf8..7b083a0 100644
--- a/googleapiclient/discovery_cache/documents/driveactivity.v2.json
+++ b/googleapiclient/discovery_cache/documents/driveactivity.v2.json
@@ -132,7 +132,7 @@
       }
     }
   },
-  "revision": "20210601",
+  "revision": "20210604",
   "rootUrl": "https://driveactivity.googleapis.com/",
   "schemas": {
     "Action": {
diff --git a/googleapiclient/discovery_cache/documents/essentialcontacts.v1.json b/googleapiclient/discovery_cache/documents/essentialcontacts.v1.json
index b240884..c2f5c28 100644
--- a/googleapiclient/discovery_cache/documents/essentialcontacts.v1.json
+++ b/googleapiclient/discovery_cache/documents/essentialcontacts.v1.json
@@ -850,7 +850,7 @@
       }
     }
   },
-  "revision": "20210603",
+  "revision": "20210607",
   "rootUrl": "https://essentialcontacts.googleapis.com/",
   "schemas": {
     "GoogleCloudEssentialcontactsV1ComputeContactsResponse": {
diff --git a/googleapiclient/discovery_cache/documents/eventarc.v1.json b/googleapiclient/discovery_cache/documents/eventarc.v1.json
index b3c9372..0cc45e4 100644
--- a/googleapiclient/discovery_cache/documents/eventarc.v1.json
+++ b/googleapiclient/discovery_cache/documents/eventarc.v1.json
@@ -584,7 +584,7 @@
       }
     }
   },
-  "revision": "20210527",
+  "revision": "20210604",
   "rootUrl": "https://eventarc.googleapis.com/",
   "schemas": {
     "AuditConfig": {
diff --git a/googleapiclient/discovery_cache/documents/factchecktools.v1alpha1.json b/googleapiclient/discovery_cache/documents/factchecktools.v1alpha1.json
index 1fbb03b..c57c1e4 100644
--- a/googleapiclient/discovery_cache/documents/factchecktools.v1alpha1.json
+++ b/googleapiclient/discovery_cache/documents/factchecktools.v1alpha1.json
@@ -304,7 +304,7 @@
       }
     }
   },
-  "revision": "20210603",
+  "revision": "20210607",
   "rootUrl": "https://factchecktools.googleapis.com/",
   "schemas": {
     "GoogleFactcheckingFactchecktoolsV1alpha1Claim": {
diff --git a/googleapiclient/discovery_cache/documents/firebase.v1beta1.json b/googleapiclient/discovery_cache/documents/firebase.v1beta1.json
index 888551d..d0267ed 100644
--- a/googleapiclient/discovery_cache/documents/firebase.v1beta1.json
+++ b/googleapiclient/discovery_cache/documents/firebase.v1beta1.json
@@ -1121,7 +1121,7 @@
       }
     }
   },
-  "revision": "20210604",
+  "revision": "20210607",
   "rootUrl": "https://firebase.googleapis.com/",
   "schemas": {
     "AddFirebaseRequest": {
diff --git a/googleapiclient/discovery_cache/documents/firebaseappcheck.v1beta.json b/googleapiclient/discovery_cache/documents/firebaseappcheck.v1beta.json
index 3d4f792..8000328 100644
--- a/googleapiclient/discovery_cache/documents/firebaseappcheck.v1beta.json
+++ b/googleapiclient/discovery_cache/documents/firebaseappcheck.v1beta.json
@@ -776,7 +776,7 @@
       }
     }
   },
-  "revision": "20210524",
+  "revision": "20210604",
   "rootUrl": "https://firebaseappcheck.googleapis.com/",
   "schemas": {
     "GoogleFirebaseAppcheckV1betaAttestationTokenResponse": {
diff --git a/googleapiclient/discovery_cache/documents/firebasedatabase.v1beta.json b/googleapiclient/discovery_cache/documents/firebasedatabase.v1beta.json
index c3cdbb8..f460fea 100644
--- a/googleapiclient/discovery_cache/documents/firebasedatabase.v1beta.json
+++ b/googleapiclient/discovery_cache/documents/firebasedatabase.v1beta.json
@@ -317,7 +317,7 @@
       }
     }
   },
-  "revision": "20210604",
+  "revision": "20210607",
   "rootUrl": "https://firebasedatabase.googleapis.com/",
   "schemas": {
     "DatabaseInstance": {
diff --git a/googleapiclient/discovery_cache/documents/firebasedynamiclinks.v1.json b/googleapiclient/discovery_cache/documents/firebasedynamiclinks.v1.json
index 44572f7..ce85f2d 100644
--- a/googleapiclient/discovery_cache/documents/firebasedynamiclinks.v1.json
+++ b/googleapiclient/discovery_cache/documents/firebasedynamiclinks.v1.json
@@ -224,7 +224,7 @@
       }
     }
   },
-  "revision": "20210528",
+  "revision": "20210603",
   "rootUrl": "https://firebasedynamiclinks.googleapis.com/",
   "schemas": {
     "AnalyticsInfo": {
diff --git a/googleapiclient/discovery_cache/documents/firebaseml.v1.json b/googleapiclient/discovery_cache/documents/firebaseml.v1.json
index ba99708..6d5ad5c 100644
--- a/googleapiclient/discovery_cache/documents/firebaseml.v1.json
+++ b/googleapiclient/discovery_cache/documents/firebaseml.v1.json
@@ -204,7 +204,7 @@
       }
     }
   },
-  "revision": "20210601",
+  "revision": "20210607",
   "rootUrl": "https://firebaseml.googleapis.com/",
   "schemas": {
     "CancelOperationRequest": {
diff --git a/googleapiclient/discovery_cache/documents/firebaseml.v1beta2.json b/googleapiclient/discovery_cache/documents/firebaseml.v1beta2.json
index 34b4479..6489077 100644
--- a/googleapiclient/discovery_cache/documents/firebaseml.v1beta2.json
+++ b/googleapiclient/discovery_cache/documents/firebaseml.v1beta2.json
@@ -318,7 +318,7 @@
       }
     }
   },
-  "revision": "20210601",
+  "revision": "20210607",
   "rootUrl": "https://firebaseml.googleapis.com/",
   "schemas": {
     "DownloadModelResponse": {
diff --git a/googleapiclient/discovery_cache/documents/fitness.v1.json b/googleapiclient/discovery_cache/documents/fitness.v1.json
index d12a7e9..85ac35a 100644
--- a/googleapiclient/discovery_cache/documents/fitness.v1.json
+++ b/googleapiclient/discovery_cache/documents/fitness.v1.json
@@ -831,7 +831,7 @@
       }
     }
   },
-  "revision": "20210601",
+  "revision": "20210604",
   "rootUrl": "https://fitness.googleapis.com/",
   "schemas": {
     "AggregateBucket": {
diff --git a/googleapiclient/discovery_cache/documents/games.v1.json b/googleapiclient/discovery_cache/documents/games.v1.json
index 17f6671..15ff59b 100644
--- a/googleapiclient/discovery_cache/documents/games.v1.json
+++ b/googleapiclient/discovery_cache/documents/games.v1.json
@@ -1224,7 +1224,7 @@
       }
     }
   },
-  "revision": "20210602",
+  "revision": "20210605",
   "rootUrl": "https://games.googleapis.com/",
   "schemas": {
     "AchievementDefinition": {
diff --git a/googleapiclient/discovery_cache/documents/gamesConfiguration.v1configuration.json b/googleapiclient/discovery_cache/documents/gamesConfiguration.v1configuration.json
index f4ea78e..1e2c4d9 100644
--- a/googleapiclient/discovery_cache/documents/gamesConfiguration.v1configuration.json
+++ b/googleapiclient/discovery_cache/documents/gamesConfiguration.v1configuration.json
@@ -439,7 +439,7 @@
       }
     }
   },
-  "revision": "20210602",
+  "revision": "20210605",
   "rootUrl": "https://gamesconfiguration.googleapis.com/",
   "schemas": {
     "AchievementConfiguration": {
diff --git a/googleapiclient/discovery_cache/documents/gamesManagement.v1management.json b/googleapiclient/discovery_cache/documents/gamesManagement.v1management.json
index 588509e..ee75b51 100644
--- a/googleapiclient/discovery_cache/documents/gamesManagement.v1management.json
+++ b/googleapiclient/discovery_cache/documents/gamesManagement.v1management.json
@@ -471,7 +471,7 @@
       }
     }
   },
-  "revision": "20210602",
+  "revision": "20210605",
   "rootUrl": "https://gamesmanagement.googleapis.com/",
   "schemas": {
     "AchievementResetAllResponse": {
diff --git a/googleapiclient/discovery_cache/documents/gameservices.v1.json b/googleapiclient/discovery_cache/documents/gameservices.v1.json
index caba004..2542106 100644
--- a/googleapiclient/discovery_cache/documents/gameservices.v1.json
+++ b/googleapiclient/discovery_cache/documents/gameservices.v1.json
@@ -1312,7 +1312,7 @@
       }
     }
   },
-  "revision": "20210527",
+  "revision": "20210603",
   "rootUrl": "https://gameservices.googleapis.com/",
   "schemas": {
     "AuditConfig": {
diff --git a/googleapiclient/discovery_cache/documents/genomics.v2alpha1.json b/googleapiclient/discovery_cache/documents/genomics.v2alpha1.json
index 2d99abd..fe46099 100644
--- a/googleapiclient/discovery_cache/documents/genomics.v2alpha1.json
+++ b/googleapiclient/discovery_cache/documents/genomics.v2alpha1.json
@@ -301,7 +301,7 @@
       }
     }
   },
-  "revision": "20210512",
+  "revision": "20210605",
   "rootUrl": "https://genomics.googleapis.com/",
   "schemas": {
     "Accelerator": {
@@ -1141,6 +1141,10 @@
           "description": "If true, allocate a preemptible VM.",
           "type": "boolean"
         },
+        "reservation": {
+          "description": "If specified, the VM will only be allocated inside the matching reservation. It will fail if the VM parameters don't match the reservation.",
+          "type": "string"
+        },
         "serviceAccount": {
           "$ref": "ServiceAccount",
           "description": "The service account to install on the VM. This account does not need any permissions other than those required by the pipeline."
diff --git a/googleapiclient/discovery_cache/documents/gkehub.v1.json b/googleapiclient/discovery_cache/documents/gkehub.v1.json
index d5bbd3b..2f6c509 100644
--- a/googleapiclient/discovery_cache/documents/gkehub.v1.json
+++ b/googleapiclient/discovery_cache/documents/gkehub.v1.json
@@ -179,6 +179,104 @@
           "resources": {
             "features": {
               "methods": {
+                "create": {
+                  "description": "Adds a new Feature.",
+                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/features",
+                  "httpMethod": "POST",
+                  "id": "gkehub.projects.locations.features.create",
+                  "parameterOrder": [
+                    "parent"
+                  ],
+                  "parameters": {
+                    "featureId": {
+                      "description": "The ID of the feature to create.",
+                      "location": "query",
+                      "type": "string"
+                    },
+                    "parent": {
+                      "description": "The parent (project and location) where the Feature will be created. Specified in the format `projects/*/locations/*`.",
+                      "location": "path",
+                      "pattern": "^projects/[^/]+/locations/[^/]+$",
+                      "required": true,
+                      "type": "string"
+                    },
+                    "requestId": {
+                      "description": "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).",
+                      "location": "query",
+                      "type": "string"
+                    }
+                  },
+                  "path": "v1/{+parent}/features",
+                  "request": {
+                    "$ref": "Feature"
+                  },
+                  "response": {
+                    "$ref": "Operation"
+                  },
+                  "scopes": [
+                    "https://www.googleapis.com/auth/cloud-platform"
+                  ]
+                },
+                "delete": {
+                  "description": "Removes a Feature.",
+                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/features/{featuresId}",
+                  "httpMethod": "DELETE",
+                  "id": "gkehub.projects.locations.features.delete",
+                  "parameterOrder": [
+                    "name"
+                  ],
+                  "parameters": {
+                    "force": {
+                      "description": "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.",
+                      "location": "query",
+                      "type": "boolean"
+                    },
+                    "name": {
+                      "description": "The Feature resource name in the format `projects/*/locations/*/features/*`.",
+                      "location": "path",
+                      "pattern": "^projects/[^/]+/locations/[^/]+/features/[^/]+$",
+                      "required": true,
+                      "type": "string"
+                    },
+                    "requestId": {
+                      "description": "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).",
+                      "location": "query",
+                      "type": "string"
+                    }
+                  },
+                  "path": "v1/{+name}",
+                  "response": {
+                    "$ref": "Operation"
+                  },
+                  "scopes": [
+                    "https://www.googleapis.com/auth/cloud-platform"
+                  ]
+                },
+                "get": {
+                  "description": "Gets details of a single Feature.",
+                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/features/{featuresId}",
+                  "httpMethod": "GET",
+                  "id": "gkehub.projects.locations.features.get",
+                  "parameterOrder": [
+                    "name"
+                  ],
+                  "parameters": {
+                    "name": {
+                      "description": "The Feature resource name in the format `projects/*/locations/*/features/*`",
+                      "location": "path",
+                      "pattern": "^projects/[^/]+/locations/[^/]+/features/[^/]+$",
+                      "required": true,
+                      "type": "string"
+                    }
+                  },
+                  "path": "v1/{+name}",
+                  "response": {
+                    "$ref": "Feature"
+                  },
+                  "scopes": [
+                    "https://www.googleapis.com/auth/cloud-platform"
+                  ]
+                },
                 "getIamPolicy": {
                   "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.",
                   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/features/{featuresId}:getIamPolicy",
@@ -210,6 +308,91 @@
                     "https://www.googleapis.com/auth/cloud-platform"
                   ]
                 },
+                "list": {
+                  "description": "Lists Features in a given project and location.",
+                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/features",
+                  "httpMethod": "GET",
+                  "id": "gkehub.projects.locations.features.list",
+                  "parameterOrder": [
+                    "parent"
+                  ],
+                  "parameters": {
+                    "filter": {
+                      "description": "Lists Features that match the filter expression, following the syntax outlined in https://google.aip.dev/160. Examples: - Feature with the name \"servicemesh\" in project \"foo-proj\": name = \"projects/foo-proj/locations/global/features/servicemesh\" - Features that have a label called `foo`: labels.foo:* - Features that have a label called `foo` whose value is `bar`: labels.foo = bar",
+                      "location": "query",
+                      "type": "string"
+                    },
+                    "orderBy": {
+                      "description": "One or more fields to compare and use to sort the output. See https://google.aip.dev/132#ordering.",
+                      "location": "query",
+                      "type": "string"
+                    },
+                    "pageSize": {
+                      "description": "When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.",
+                      "format": "int32",
+                      "location": "query",
+                      "type": "integer"
+                    },
+                    "pageToken": {
+                      "description": "Token returned by previous call to `ListFeatures` which specifies the position in the list from where to continue listing the resources.",
+                      "location": "query",
+                      "type": "string"
+                    },
+                    "parent": {
+                      "description": "The parent (project and location) where the Features will be listed. Specified in the format `projects/*/locations/*`.",
+                      "location": "path",
+                      "pattern": "^projects/[^/]+/locations/[^/]+$",
+                      "required": true,
+                      "type": "string"
+                    }
+                  },
+                  "path": "v1/{+parent}/features",
+                  "response": {
+                    "$ref": "ListFeaturesResponse"
+                  },
+                  "scopes": [
+                    "https://www.googleapis.com/auth/cloud-platform"
+                  ]
+                },
+                "patch": {
+                  "description": "Updates an existing Feature.",
+                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/features/{featuresId}",
+                  "httpMethod": "PATCH",
+                  "id": "gkehub.projects.locations.features.patch",
+                  "parameterOrder": [
+                    "name"
+                  ],
+                  "parameters": {
+                    "name": {
+                      "description": "The Feature resource name in the format `projects/*/locations/*/features/*`.",
+                      "location": "path",
+                      "pattern": "^projects/[^/]+/locations/[^/]+/features/[^/]+$",
+                      "required": true,
+                      "type": "string"
+                    },
+                    "requestId": {
+                      "description": "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).",
+                      "location": "query",
+                      "type": "string"
+                    },
+                    "updateMask": {
+                      "description": "Mask of fields to update.",
+                      "format": "google-fieldmask",
+                      "location": "query",
+                      "type": "string"
+                    }
+                  },
+                  "path": "v1/{+name}",
+                  "request": {
+                    "$ref": "Feature"
+                  },
+                  "response": {
+                    "$ref": "Operation"
+                  },
+                  "scopes": [
+                    "https://www.googleapis.com/auth/cloud-platform"
+                  ]
+                },
                 "setIamPolicy": {
                   "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.",
                   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/features/{featuresId}:setIamPolicy",
@@ -722,7 +905,7 @@
       }
     }
   },
-  "revision": "20210601",
+  "revision": "20210604",
   "rootUrl": "https://gkehub.googleapis.com/",
   "schemas": {
     "AuditConfig": {
@@ -827,6 +1010,647 @@
       "properties": {},
       "type": "object"
     },
+    "CommonFeatureSpec": {
+      "description": "CommonFeatureSpec contains Hub-wide configuration information",
+      "id": "CommonFeatureSpec",
+      "properties": {
+        "multiclusteringress": {
+          "$ref": "MultiClusterIngressFeatureSpec",
+          "description": "Multicluster Ingress-specific spec."
+        }
+      },
+      "type": "object"
+    },
+    "CommonFeatureState": {
+      "description": "CommonFeatureState contains Hub-wide Feature status information.",
+      "id": "CommonFeatureState",
+      "properties": {
+        "state": {
+          "$ref": "FeatureState",
+          "description": "Output only. The \"running state\" of the Feature in this Hub.",
+          "readOnly": true
+        }
+      },
+      "type": "object"
+    },
+    "ConfigManagementConfigSync": {
+      "description": "Configuration for Config Sync",
+      "id": "ConfigManagementConfigSync",
+      "properties": {
+        "git": {
+          "$ref": "ConfigManagementGitConfig",
+          "description": "Git repo configuration for the cluster."
+        },
+        "sourceFormat": {
+          "description": "Specifies whether the Config Sync Repo is in \u201chierarchical\u201d or \u201cunstructured\u201d mode.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "ConfigManagementConfigSyncDeploymentState": {
+      "description": "The state of ConfigSync's deployment on a cluster",
+      "id": "ConfigManagementConfigSyncDeploymentState",
+      "properties": {
+        "gitSync": {
+          "description": "Deployment state of the git-sync pod",
+          "enum": [
+            "DEPLOYMENT_STATE_UNSPECIFIED",
+            "NOT_INSTALLED",
+            "INSTALLED",
+            "ERROR"
+          ],
+          "enumDescriptions": [
+            "Deployment's state cannot be determined",
+            "Deployment is not installed",
+            "Deployment is installed",
+            "Deployment was attempted to be installed, but has errors"
+          ],
+          "type": "string"
+        },
+        "importer": {
+          "description": "Deployment state of the importer pod",
+          "enum": [
+            "DEPLOYMENT_STATE_UNSPECIFIED",
+            "NOT_INSTALLED",
+            "INSTALLED",
+            "ERROR"
+          ],
+          "enumDescriptions": [
+            "Deployment's state cannot be determined",
+            "Deployment is not installed",
+            "Deployment is installed",
+            "Deployment was attempted to be installed, but has errors"
+          ],
+          "type": "string"
+        },
+        "monitor": {
+          "description": "Deployment state of the monitor pod",
+          "enum": [
+            "DEPLOYMENT_STATE_UNSPECIFIED",
+            "NOT_INSTALLED",
+            "INSTALLED",
+            "ERROR"
+          ],
+          "enumDescriptions": [
+            "Deployment's state cannot be determined",
+            "Deployment is not installed",
+            "Deployment is installed",
+            "Deployment was attempted to be installed, but has errors"
+          ],
+          "type": "string"
+        },
+        "reconcilerManager": {
+          "description": "Deployment state of reconciler-manager pod",
+          "enum": [
+            "DEPLOYMENT_STATE_UNSPECIFIED",
+            "NOT_INSTALLED",
+            "INSTALLED",
+            "ERROR"
+          ],
+          "enumDescriptions": [
+            "Deployment's state cannot be determined",
+            "Deployment is not installed",
+            "Deployment is installed",
+            "Deployment was attempted to be installed, but has errors"
+          ],
+          "type": "string"
+        },
+        "rootReconciler": {
+          "description": "Deployment state of root-reconciler",
+          "enum": [
+            "DEPLOYMENT_STATE_UNSPECIFIED",
+            "NOT_INSTALLED",
+            "INSTALLED",
+            "ERROR"
+          ],
+          "enumDescriptions": [
+            "Deployment's state cannot be determined",
+            "Deployment is not installed",
+            "Deployment is installed",
+            "Deployment was attempted to be installed, but has errors"
+          ],
+          "type": "string"
+        },
+        "syncer": {
+          "description": "Deployment state of the syncer pod",
+          "enum": [
+            "DEPLOYMENT_STATE_UNSPECIFIED",
+            "NOT_INSTALLED",
+            "INSTALLED",
+            "ERROR"
+          ],
+          "enumDescriptions": [
+            "Deployment's state cannot be determined",
+            "Deployment is not installed",
+            "Deployment is installed",
+            "Deployment was attempted to be installed, but has errors"
+          ],
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "ConfigManagementConfigSyncState": {
+      "description": "State information for ConfigSync",
+      "id": "ConfigManagementConfigSyncState",
+      "properties": {
+        "deploymentState": {
+          "$ref": "ConfigManagementConfigSyncDeploymentState",
+          "description": "Information about the deployment of ConfigSync, including the version of the various Pods deployed"
+        },
+        "syncState": {
+          "$ref": "ConfigManagementSyncState",
+          "description": "The state of ConfigSync's process to sync configs to a cluster"
+        },
+        "version": {
+          "$ref": "ConfigManagementConfigSyncVersion",
+          "description": "The version of ConfigSync deployed"
+        }
+      },
+      "type": "object"
+    },
+    "ConfigManagementConfigSyncVersion": {
+      "description": "Specific versioning information pertaining to ConfigSync's Pods",
+      "id": "ConfigManagementConfigSyncVersion",
+      "properties": {
+        "gitSync": {
+          "description": "Version of the deployed git-sync pod",
+          "type": "string"
+        },
+        "importer": {
+          "description": "Version of the deployed importer pod",
+          "type": "string"
+        },
+        "monitor": {
+          "description": "Version of the deployed monitor pod",
+          "type": "string"
+        },
+        "reconcilerManager": {
+          "description": "Version of the deployed reconciler-manager pod",
+          "type": "string"
+        },
+        "rootReconciler": {
+          "description": "Version of the deployed reconciler container in root-reconciler pod",
+          "type": "string"
+        },
+        "syncer": {
+          "description": "Version of the deployed syncer pod",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "ConfigManagementErrorResource": {
+      "description": "Model for a config file in the git repo with an associated Sync error",
+      "id": "ConfigManagementErrorResource",
+      "properties": {
+        "resourceGvk": {
+          "$ref": "ConfigManagementGroupVersionKind",
+          "description": "Group/version/kind of the resource that is causing an error"
+        },
+        "resourceName": {
+          "description": "Metadata name of the resource that is causing an error",
+          "type": "string"
+        },
+        "resourceNamespace": {
+          "description": "Namespace of the resource that is causing an error",
+          "type": "string"
+        },
+        "sourcePath": {
+          "description": "Path in the git repo of the erroneous config",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "ConfigManagementGatekeeperDeploymentState": {
+      "description": "State of Policy Controller installation.",
+      "id": "ConfigManagementGatekeeperDeploymentState",
+      "properties": {
+        "gatekeeperAudit": {
+          "description": "Status of gatekeeper-audit deployment.",
+          "enum": [
+            "DEPLOYMENT_STATE_UNSPECIFIED",
+            "NOT_INSTALLED",
+            "INSTALLED",
+            "ERROR"
+          ],
+          "enumDescriptions": [
+            "Deployment's state cannot be determined",
+            "Deployment is not installed",
+            "Deployment is installed",
+            "Deployment was attempted to be installed, but has errors"
+          ],
+          "type": "string"
+        },
+        "gatekeeperControllerManagerState": {
+          "description": "Status of gatekeeper-controller-manager pod.",
+          "enum": [
+            "DEPLOYMENT_STATE_UNSPECIFIED",
+            "NOT_INSTALLED",
+            "INSTALLED",
+            "ERROR"
+          ],
+          "enumDescriptions": [
+            "Deployment's state cannot be determined",
+            "Deployment is not installed",
+            "Deployment is installed",
+            "Deployment was attempted to be installed, but has errors"
+          ],
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "ConfigManagementGitConfig": {
+      "description": "Git repo configuration for a single cluster.",
+      "id": "ConfigManagementGitConfig",
+      "properties": {
+        "gcpServiceAccountEmail": {
+          "description": "The GCP Service Account Email used for auth when secret_type is gcpServiceAccount.",
+          "type": "string"
+        },
+        "httpsProxy": {
+          "description": "URL for the HTTPS proxy to be used when communicating with the Git repo.",
+          "type": "string"
+        },
+        "policyDir": {
+          "description": "The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.",
+          "type": "string"
+        },
+        "secretType": {
+          "description": "Type of secret configured for access to the Git repo.",
+          "type": "string"
+        },
+        "syncBranch": {
+          "description": "The branch of the repository to sync from. Default: master.",
+          "type": "string"
+        },
+        "syncRepo": {
+          "description": "The URL of the Git repository to use as the source of truth.",
+          "type": "string"
+        },
+        "syncRev": {
+          "description": "Git revision (tag or hash) to check out. Default HEAD.",
+          "type": "string"
+        },
+        "syncWaitSecs": {
+          "description": "Period in seconds between consecutive syncs. Default: 15.",
+          "format": "int64",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "ConfigManagementGroupVersionKind": {
+      "description": "A Kubernetes object's GVK",
+      "id": "ConfigManagementGroupVersionKind",
+      "properties": {
+        "group": {
+          "description": "Kubernetes Group",
+          "type": "string"
+        },
+        "kind": {
+          "description": "Kubernetes Kind",
+          "type": "string"
+        },
+        "version": {
+          "description": "Kubernetes Version",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "ConfigManagementHierarchyControllerConfig": {
+      "description": "Configuration for Hierarchy Controller",
+      "id": "ConfigManagementHierarchyControllerConfig",
+      "properties": {
+        "enableHierarchicalResourceQuota": {
+          "description": "Whether hierarchical resource quota is enabled in this cluster.",
+          "type": "boolean"
+        },
+        "enablePodTreeLabels": {
+          "description": "Whether pod tree labels are enabled in this cluster.",
+          "type": "boolean"
+        },
+        "enabled": {
+          "description": "Whether Hierarchy Controller is enabled in this cluster.",
+          "type": "boolean"
+        }
+      },
+      "type": "object"
+    },
+    "ConfigManagementHierarchyControllerDeploymentState": {
+      "description": "Deployment state for Hierarchy Controller",
+      "id": "ConfigManagementHierarchyControllerDeploymentState",
+      "properties": {
+        "extension": {
+          "description": "The deployment state for Hierarchy Controller extension (e.g. v0.7.0-hc.1)",
+          "enum": [
+            "DEPLOYMENT_STATE_UNSPECIFIED",
+            "NOT_INSTALLED",
+            "INSTALLED",
+            "ERROR"
+          ],
+          "enumDescriptions": [
+            "Deployment's state cannot be determined",
+            "Deployment is not installed",
+            "Deployment is installed",
+            "Deployment was attempted to be installed, but has errors"
+          ],
+          "type": "string"
+        },
+        "hnc": {
+          "description": "The deployment state for open source HNC (e.g. v0.7.0-hc.0)",
+          "enum": [
+            "DEPLOYMENT_STATE_UNSPECIFIED",
+            "NOT_INSTALLED",
+            "INSTALLED",
+            "ERROR"
+          ],
+          "enumDescriptions": [
+            "Deployment's state cannot be determined",
+            "Deployment is not installed",
+            "Deployment is installed",
+            "Deployment was attempted to be installed, but has errors"
+          ],
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "ConfigManagementHierarchyControllerState": {
+      "description": "State for Hierarchy Controller",
+      "id": "ConfigManagementHierarchyControllerState",
+      "properties": {
+        "state": {
+          "$ref": "ConfigManagementHierarchyControllerDeploymentState",
+          "description": "The deployment state for Hierarchy Controller"
+        },
+        "version": {
+          "$ref": "ConfigManagementHierarchyControllerVersion",
+          "description": "The version for Hierarchy Controller"
+        }
+      },
+      "type": "object"
+    },
+    "ConfigManagementHierarchyControllerVersion": {
+      "description": "Version for Hierarchy Controller",
+      "id": "ConfigManagementHierarchyControllerVersion",
+      "properties": {
+        "extension": {
+          "description": "Version for Hierarchy Controller extension",
+          "type": "string"
+        },
+        "hnc": {
+          "description": "Version for open source HNC",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "ConfigManagementInstallError": {
+      "description": "Errors pertaining to the installation of ACM",
+      "id": "ConfigManagementInstallError",
+      "properties": {
+        "errorMessage": {
+          "description": "A string representing the user facing error message",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "ConfigManagementMembershipSpec": {
+      "description": "**Anthos Config Management**: Configuration for a single cluster. Intended to parallel the ConfigManagement CR.",
+      "id": "ConfigManagementMembershipSpec",
+      "properties": {
+        "configSync": {
+          "$ref": "ConfigManagementConfigSync",
+          "description": "Config Sync configuration for the cluster."
+        },
+        "hierarchyController": {
+          "$ref": "ConfigManagementHierarchyControllerConfig",
+          "description": "Hierarchy Controller configuration for the cluster."
+        },
+        "policyController": {
+          "$ref": "ConfigManagementPolicyController",
+          "description": "Policy Controller configuration for the cluster."
+        },
+        "version": {
+          "description": "Version of ACM installed.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "ConfigManagementMembershipState": {
+      "description": "**Anthos Config Management**: State for a single cluster.",
+      "id": "ConfigManagementMembershipState",
+      "properties": {
+        "clusterName": {
+          "description": "The user-defined name for the cluster used by ClusterSelectors to group clusters together. This should match Membership'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.",
+          "type": "string"
+        },
+        "configSyncState": {
+          "$ref": "ConfigManagementConfigSyncState",
+          "description": "Current sync status"
+        },
+        "hierarchyControllerState": {
+          "$ref": "ConfigManagementHierarchyControllerState",
+          "description": "Hierarchy Controller status"
+        },
+        "membershipSpec": {
+          "$ref": "ConfigManagementMembershipSpec",
+          "description": "Membership configuration in the cluster. This represents the actual state in the cluster, while the MembershipSpec in the FeatureSpec represents the intended state"
+        },
+        "operatorState": {
+          "$ref": "ConfigManagementOperatorState",
+          "description": "Current install status of ACM's Operator"
+        },
+        "policyControllerState": {
+          "$ref": "ConfigManagementPolicyControllerState",
+          "description": "PolicyController status"
+        }
+      },
+      "type": "object"
+    },
+    "ConfigManagementOperatorState": {
+      "description": "State information for an ACM's Operator",
+      "id": "ConfigManagementOperatorState",
+      "properties": {
+        "deploymentState": {
+          "description": "The state of the Operator's deployment",
+          "enum": [
+            "DEPLOYMENT_STATE_UNSPECIFIED",
+            "NOT_INSTALLED",
+            "INSTALLED",
+            "ERROR"
+          ],
+          "enumDescriptions": [
+            "Deployment's state cannot be determined",
+            "Deployment is not installed",
+            "Deployment is installed",
+            "Deployment was attempted to be installed, but has errors"
+          ],
+          "type": "string"
+        },
+        "errors": {
+          "description": "Install errors.",
+          "items": {
+            "$ref": "ConfigManagementInstallError"
+          },
+          "type": "array"
+        },
+        "version": {
+          "description": "The semenatic version number of the operator",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "ConfigManagementPolicyController": {
+      "description": "Configuration for Policy Controller",
+      "id": "ConfigManagementPolicyController",
+      "properties": {
+        "auditIntervalSeconds": {
+          "description": "Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.",
+          "format": "int64",
+          "type": "string"
+        },
+        "enabled": {
+          "description": "Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.",
+          "type": "boolean"
+        },
+        "exemptableNamespaces": {
+          "description": "The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.",
+          "items": {
+            "type": "string"
+          },
+          "type": "array"
+        },
+        "logDeniesEnabled": {
+          "description": "Logs all denies and dry run failures.",
+          "type": "boolean"
+        },
+        "referentialRulesEnabled": {
+          "description": "Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.",
+          "type": "boolean"
+        },
+        "templateLibraryInstalled": {
+          "description": "Installs the default template library along with Policy Controller.",
+          "type": "boolean"
+        }
+      },
+      "type": "object"
+    },
+    "ConfigManagementPolicyControllerState": {
+      "description": "State for PolicyControllerState.",
+      "id": "ConfigManagementPolicyControllerState",
+      "properties": {
+        "deploymentState": {
+          "$ref": "ConfigManagementGatekeeperDeploymentState",
+          "description": "The state about the policy controller installation."
+        },
+        "version": {
+          "$ref": "ConfigManagementPolicyControllerVersion",
+          "description": "The version of Gatekeeper Policy Controller deployed."
+        }
+      },
+      "type": "object"
+    },
+    "ConfigManagementPolicyControllerVersion": {
+      "description": "The build version of Gatekeeper Policy Controller is using.",
+      "id": "ConfigManagementPolicyControllerVersion",
+      "properties": {
+        "version": {
+          "description": "The gatekeeper image tag that is composed of ACM version, git tag, build number.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "ConfigManagementSyncError": {
+      "description": "An ACM created error representing a problem syncing configurations",
+      "id": "ConfigManagementSyncError",
+      "properties": {
+        "code": {
+          "description": "An ACM defined error code",
+          "type": "string"
+        },
+        "errorMessage": {
+          "description": "A description of the error",
+          "type": "string"
+        },
+        "errorResources": {
+          "description": "A list of config(s) associated with the error, if any",
+          "items": {
+            "$ref": "ConfigManagementErrorResource"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "ConfigManagementSyncState": {
+      "description": "State indicating an ACM's progress syncing configurations to a cluster",
+      "id": "ConfigManagementSyncState",
+      "properties": {
+        "code": {
+          "description": "Sync status code",
+          "enum": [
+            "SYNC_CODE_UNSPECIFIED",
+            "SYNCED",
+            "PENDING",
+            "ERROR",
+            "NOT_CONFIGURED",
+            "NOT_INSTALLED",
+            "UNAUTHORIZED",
+            "UNREACHABLE"
+          ],
+          "enumDescriptions": [
+            "ACM cannot determine a sync code",
+            "ACM successfully synced the git Repo with the cluster",
+            "ACM is in the progress of syncing a new change",
+            "Indicates an error configuring ACM, and user action is required",
+            "ACM has been installed (operator manifest deployed), but not configured.",
+            "ACM has not been installed (no operator pod found)",
+            "Error authorizing with the cluster",
+            "Cluster could not be reached"
+          ],
+          "type": "string"
+        },
+        "errors": {
+          "description": "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.",
+          "items": {
+            "$ref": "ConfigManagementSyncError"
+          },
+          "type": "array"
+        },
+        "importToken": {
+          "description": "Token indicating the state of the importer.",
+          "type": "string"
+        },
+        "lastSync": {
+          "description": "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)",
+          "type": "string"
+        },
+        "lastSyncTime": {
+          "description": "Timestamp type of when ACM last successfully synced the repo",
+          "format": "google-datetime",
+          "type": "string"
+        },
+        "sourceToken": {
+          "description": "Token indicating the state of the repo.",
+          "type": "string"
+        },
+        "syncToken": {
+          "description": "Token indicating the state of the syncer.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "ConnectAgentResource": {
       "description": "ConnectAgentResource represents a Kubernetes resource manifest for Connect Agent deployment.",
       "id": "ConnectAgentResource",
@@ -871,6 +1695,131 @@
       },
       "type": "object"
     },
+    "Feature": {
+      "description": "Feature represents the settings and status of any Hub Feature.",
+      "id": "Feature",
+      "properties": {
+        "createTime": {
+          "description": "Output only. When the Feature resource was created.",
+          "format": "google-datetime",
+          "readOnly": true,
+          "type": "string"
+        },
+        "deleteTime": {
+          "description": "Output only. When the Feature resource was deleted.",
+          "format": "google-datetime",
+          "readOnly": true,
+          "type": "string"
+        },
+        "labels": {
+          "additionalProperties": {
+            "type": "string"
+          },
+          "description": "GCP labels for this Feature.",
+          "type": "object"
+        },
+        "membershipSpecs": {
+          "additionalProperties": {
+            "$ref": "MembershipFeatureSpec"
+          },
+          "description": "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, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} WILL match the Feature's project. {p} will always be returned as the project number, but the project ID is also accepted during input. If the same Membership is specified in the map twice (using the project ID form, and the project number form), exactly ONE of the entries will be saved, with no guarantees as to which. For this reason, it is recommended the same format be used for all entries when mutating a Feature.",
+          "type": "object"
+        },
+        "membershipStates": {
+          "additionalProperties": {
+            "$ref": "MembershipFeatureState"
+          },
+          "description": "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's project number.",
+          "readOnly": true,
+          "type": "object"
+        },
+        "name": {
+          "description": "Output only. The full, unique name of this Feature resource in the format `projects/*/locations/*/features/*`.",
+          "readOnly": true,
+          "type": "string"
+        },
+        "resourceState": {
+          "$ref": "FeatureResourceState",
+          "description": "Output only. State of the Feature resource itself.",
+          "readOnly": true
+        },
+        "spec": {
+          "$ref": "CommonFeatureSpec",
+          "description": "Optional. Hub-wide Feature configuration. If this Feature does not support any Hub-wide configuration, this field may be unused."
+        },
+        "state": {
+          "$ref": "CommonFeatureState",
+          "description": "Output only. The Hub-wide Feature state.",
+          "readOnly": true
+        },
+        "updateTime": {
+          "description": "Output only. When the Feature resource was last updated.",
+          "format": "google-datetime",
+          "readOnly": true,
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "FeatureResourceState": {
+      "description": "FeatureResourceState describes the state of a Feature *resource* in the GkeHub API. See `FeatureState` for the \"running state\" of the Feature in the Hub and across Memberships.",
+      "id": "FeatureResourceState",
+      "properties": {
+        "state": {
+          "description": "The current state of the Feature resource in the Hub API.",
+          "enum": [
+            "STATE_UNSPECIFIED",
+            "ENABLING",
+            "ACTIVE",
+            "DISABLING",
+            "UPDATING",
+            "SERVICE_UPDATING"
+          ],
+          "enumDescriptions": [
+            "State is unknown or not set.",
+            "The Feature is being enabled, and the Feature resource is being created. Once complete, the corresponding Feature will be enabled in this Hub.",
+            "The Feature is enabled in this Hub, and the Feature resource is fully available.",
+            "The Feature is being disabled in this Hub, and the Feature resource is being deleted.",
+            "The Feature resource is being updated.",
+            "The Feature resource is being updated by the Hub Service."
+          ],
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "FeatureState": {
+      "description": "FeatureState describes the high-level state of a Feature. It may be used to describe a Feature's state at the environ-level, or per-membershop, depending on the context.",
+      "id": "FeatureState",
+      "properties": {
+        "code": {
+          "description": "The high-level, machine-readable status of this Feature.",
+          "enum": [
+            "CODE_UNSPECIFIED",
+            "OK",
+            "WARNING",
+            "ERROR"
+          ],
+          "enumDescriptions": [
+            "Unknown or not set.",
+            "The Feature is operating normally.",
+            "The Feature has encountered an issue, and is operating in a degraded state. The Feature may need intervention to return to normal operation. See the description and any associated Feature-specific details for more information.",
+            "The Feature is not operating or is in a severely degraded state. The Feature may need intervention to return to normal operation. See the description and any associated Feature-specific details for more information."
+          ],
+          "type": "string"
+        },
+        "description": {
+          "description": "A human-readable description of the current status.",
+          "type": "string"
+        },
+        "updateTime": {
+          "description": "The time this status and any related Feature-specific details were updated.",
+          "format": "google-datetime",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "GenerateConnectManifestResponse": {
       "description": "GenerateConnectManifestResponse contains manifest information for installing/upgrading a Connect agent.",
       "id": "GenerateConnectManifestResponse",
@@ -964,6 +1913,24 @@
       },
       "type": "object"
     },
+    "ListFeaturesResponse": {
+      "description": "Response message for the `GkeHub.ListFeatures` method.",
+      "id": "ListFeaturesResponse",
+      "properties": {
+        "nextPageToken": {
+          "description": "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.",
+          "type": "string"
+        },
+        "resources": {
+          "description": "The list of matching Features",
+          "items": {
+            "$ref": "Feature"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
     "ListLocationsResponse": {
       "description": "The response message for Locations.ListLocations.",
       "id": "ListLocationsResponse",
@@ -1145,6 +2112,32 @@
       },
       "type": "object"
     },
+    "MembershipFeatureSpec": {
+      "description": "MembershipFeatureSpec contains configuration information for a single Membership.",
+      "id": "MembershipFeatureSpec",
+      "properties": {
+        "configmanagement": {
+          "$ref": "ConfigManagementMembershipSpec",
+          "description": "Config Management-specific spec."
+        }
+      },
+      "type": "object"
+    },
+    "MembershipFeatureState": {
+      "description": "MembershipFeatureState contains Feature status information for a single Membership.",
+      "id": "MembershipFeatureState",
+      "properties": {
+        "configmanagement": {
+          "$ref": "ConfigManagementMembershipState",
+          "description": "Config Management-specific state."
+        },
+        "state": {
+          "$ref": "FeatureState",
+          "description": "The high-level state of this Feature for a single membership."
+        }
+      },
+      "type": "object"
+    },
     "MembershipState": {
       "description": "MembershipState describes the state of a Membership resource.",
       "id": "MembershipState",
@@ -1173,6 +2166,17 @@
       },
       "type": "object"
     },
+    "MultiClusterIngressFeatureSpec": {
+      "description": "**Multi-cluster Ingress**: The configuration for the MultiClusterIngress feature.",
+      "id": "MultiClusterIngressFeatureSpec",
+      "properties": {
+        "configMembership": {
+          "description": "Fully-qualified Membership name which hosts the MultiClusterIngress CRD. Example: `projects/foo-proj/locations/global/memberships/bar`",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "Operation": {
       "description": "This resource represents a long-running operation that is the result of a network API call.",
       "id": "Operation",
diff --git a/googleapiclient/discovery_cache/documents/gkehub.v1alpha.json b/googleapiclient/discovery_cache/documents/gkehub.v1alpha.json
index 9f00bb3..d3a761d 100644
--- a/googleapiclient/discovery_cache/documents/gkehub.v1alpha.json
+++ b/googleapiclient/discovery_cache/documents/gkehub.v1alpha.json
@@ -670,7 +670,7 @@
       }
     }
   },
-  "revision": "20210601",
+  "revision": "20210604",
   "rootUrl": "https://gkehub.googleapis.com/",
   "schemas": {
     "AuditConfig": {
diff --git a/googleapiclient/discovery_cache/documents/gmailpostmastertools.v1.json b/googleapiclient/discovery_cache/documents/gmailpostmastertools.v1.json
index 069c142..ef6a8ab 100644
--- a/googleapiclient/discovery_cache/documents/gmailpostmastertools.v1.json
+++ b/googleapiclient/discovery_cache/documents/gmailpostmastertools.v1.json
@@ -265,7 +265,7 @@
       }
     }
   },
-  "revision": "20210604",
+  "revision": "20210607",
   "rootUrl": "https://gmailpostmastertools.googleapis.com/",
   "schemas": {
     "DeliveryError": {
diff --git a/googleapiclient/discovery_cache/documents/gmailpostmastertools.v1beta1.json b/googleapiclient/discovery_cache/documents/gmailpostmastertools.v1beta1.json
index 0712471..6763ee4 100644
--- a/googleapiclient/discovery_cache/documents/gmailpostmastertools.v1beta1.json
+++ b/googleapiclient/discovery_cache/documents/gmailpostmastertools.v1beta1.json
@@ -265,7 +265,7 @@
       }
     }
   },
-  "revision": "20210604",
+  "revision": "20210607",
   "rootUrl": "https://gmailpostmastertools.googleapis.com/",
   "schemas": {
     "DeliveryError": {
diff --git a/googleapiclient/discovery_cache/documents/ideahub.v1alpha.json b/googleapiclient/discovery_cache/documents/ideahub.v1alpha.json
index dcf2de5..1ac1646 100644
--- a/googleapiclient/discovery_cache/documents/ideahub.v1alpha.json
+++ b/googleapiclient/discovery_cache/documents/ideahub.v1alpha.json
@@ -307,7 +307,7 @@
       }
     }
   },
-  "revision": "20210604",
+  "revision": "20210608",
   "rootUrl": "https://ideahub.googleapis.com/",
   "schemas": {
     "GoogleSearchIdeahubV1alphaAvailableLocale": {
diff --git a/googleapiclient/discovery_cache/documents/libraryagent.v1.json b/googleapiclient/discovery_cache/documents/libraryagent.v1.json
index cdd87d5..2e483ac 100644
--- a/googleapiclient/discovery_cache/documents/libraryagent.v1.json
+++ b/googleapiclient/discovery_cache/documents/libraryagent.v1.json
@@ -279,7 +279,7 @@
       }
     }
   },
-  "revision": "20210604",
+  "revision": "20210607",
   "rootUrl": "https://libraryagent.googleapis.com/",
   "schemas": {
     "GoogleExampleLibraryagentV1Book": {
diff --git a/googleapiclient/discovery_cache/documents/localservices.v1.json b/googleapiclient/discovery_cache/documents/localservices.v1.json
index e431527..1cc6d31 100644
--- a/googleapiclient/discovery_cache/documents/localservices.v1.json
+++ b/googleapiclient/discovery_cache/documents/localservices.v1.json
@@ -250,7 +250,7 @@
       }
     }
   },
-  "revision": "20210604",
+  "revision": "20210607",
   "rootUrl": "https://localservices.googleapis.com/",
   "schemas": {
     "GoogleAdsHomeservicesLocalservicesV1AccountReport": {
diff --git a/googleapiclient/discovery_cache/documents/mybusinessaccountmanagement.v1.json b/googleapiclient/discovery_cache/documents/mybusinessaccountmanagement.v1.json
index 9f49808..b93f334 100644
--- a/googleapiclient/discovery_cache/documents/mybusinessaccountmanagement.v1.json
+++ b/googleapiclient/discovery_cache/documents/mybusinessaccountmanagement.v1.json
@@ -530,7 +530,7 @@
       }
     }
   },
-  "revision": "20210603",
+  "revision": "20210607",
   "rootUrl": "https://mybusinessaccountmanagement.googleapis.com/",
   "schemas": {
     "AcceptInvitationRequest": {
diff --git a/googleapiclient/discovery_cache/documents/mybusinesslodging.v1.json b/googleapiclient/discovery_cache/documents/mybusinesslodging.v1.json
index a5ceae5..5a10d42 100644
--- a/googleapiclient/discovery_cache/documents/mybusinesslodging.v1.json
+++ b/googleapiclient/discovery_cache/documents/mybusinesslodging.v1.json
@@ -194,7 +194,7 @@
       }
     }
   },
-  "revision": "20210603",
+  "revision": "20210607",
   "rootUrl": "https://mybusinesslodging.googleapis.com/",
   "schemas": {
     "Accessibility": {
diff --git a/googleapiclient/discovery_cache/documents/mybusinessplaceactions.v1.json b/googleapiclient/discovery_cache/documents/mybusinessplaceactions.v1.json
index a10bd16..c4286c6 100644
--- a/googleapiclient/discovery_cache/documents/mybusinessplaceactions.v1.json
+++ b/googleapiclient/discovery_cache/documents/mybusinessplaceactions.v1.json
@@ -281,7 +281,7 @@
       }
     }
   },
-  "revision": "20210603",
+  "revision": "20210607",
   "rootUrl": "https://mybusinessplaceactions.googleapis.com/",
   "schemas": {
     "Empty": {
diff --git a/googleapiclient/discovery_cache/documents/networkconnectivity.v1alpha1.json b/googleapiclient/discovery_cache/documents/networkconnectivity.v1alpha1.json
index cdcd4f4..b134391 100644
--- a/googleapiclient/discovery_cache/documents/networkconnectivity.v1alpha1.json
+++ b/googleapiclient/discovery_cache/documents/networkconnectivity.v1alpha1.json
@@ -1029,7 +1029,7 @@
       }
     }
   },
-  "revision": "20210511",
+  "revision": "20210608",
   "rootUrl": "https://networkconnectivity.googleapis.com/",
   "schemas": {
     "AttributeValue": {
diff --git a/googleapiclient/discovery_cache/documents/orgpolicy.v2.json b/googleapiclient/discovery_cache/documents/orgpolicy.v2.json
index 68c0605..81bfa19 100644
--- a/googleapiclient/discovery_cache/documents/orgpolicy.v2.json
+++ b/googleapiclient/discovery_cache/documents/orgpolicy.v2.json
@@ -751,7 +751,7 @@
       }
     }
   },
-  "revision": "20210604",
+  "revision": "20210607",
   "rootUrl": "https://orgpolicy.googleapis.com/",
   "schemas": {
     "GoogleCloudOrgpolicyV2Constraint": {
diff --git a/googleapiclient/discovery_cache/documents/pagespeedonline.v5.json b/googleapiclient/discovery_cache/documents/pagespeedonline.v5.json
index e1c779e..2c86813 100644
--- a/googleapiclient/discovery_cache/documents/pagespeedonline.v5.json
+++ b/googleapiclient/discovery_cache/documents/pagespeedonline.v5.json
@@ -193,7 +193,7 @@
       }
     }
   },
-  "revision": "20210604",
+  "revision": "20210605",
   "rootUrl": "https://pagespeedonline.googleapis.com/",
   "schemas": {
     "AuditRefs": {
diff --git a/googleapiclient/discovery_cache/documents/paymentsresellersubscription.v1.json b/googleapiclient/discovery_cache/documents/paymentsresellersubscription.v1.json
index baea698..f1cf4d8 100644
--- a/googleapiclient/discovery_cache/documents/paymentsresellersubscription.v1.json
+++ b/googleapiclient/discovery_cache/documents/paymentsresellersubscription.v1.json
@@ -366,7 +366,7 @@
       }
     }
   },
-  "revision": "20210607",
+  "revision": "20210608",
   "rootUrl": "https://paymentsresellersubscription.googleapis.com/",
   "schemas": {
     "GoogleCloudPaymentsResellerSubscriptionV1CancelSubscriptionRequest": {
diff --git a/googleapiclient/discovery_cache/documents/people.v1.json b/googleapiclient/discovery_cache/documents/people.v1.json
index 2839742..5a8e68d 100644
--- a/googleapiclient/discovery_cache/documents/people.v1.json
+++ b/googleapiclient/discovery_cache/documents/people.v1.json
@@ -438,7 +438,7 @@
           ]
         },
         "search": {
-          "description": "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.",
+          "description": "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. **IMPORTANT**: Before searching, clients should send a warmup request with an empty query to update the cache. See https://developers.google.com/people/v1/other-contacts#search_the_users_other_contacts",
           "flatPath": "v1/otherContacts:search",
           "httpMethod": "GET",
           "id": "people.otherContacts.search",
@@ -824,8 +824,8 @@
               ],
               "enumDescriptions": [
                 "Unspecified.",
-                "G Suite domain shared contact.",
-                "G Suite domain profile."
+                "Google Workspace domain shared contact.",
+                "Google Workspace domain profile."
               ],
               "location": "query",
               "repeated": true,
@@ -846,7 +846,7 @@
           ]
         },
         "searchContacts": {
-          "description": "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.",
+          "description": "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. **IMPORTANT**: Before searching, clients should send a warmup request with an empty query to update the cache. See https://developers.google.com/people/v1/contacts#search_the_users_contacts",
           "flatPath": "v1/people:searchContacts",
           "httpMethod": "GET",
           "id": "people.people.searchContacts",
@@ -949,8 +949,8 @@
               ],
               "enumDescriptions": [
                 "Unspecified.",
-                "G Suite domain shared contact.",
-                "G Suite domain profile."
+                "Google Workspace domain shared contact.",
+                "Google Workspace domain profile."
               ],
               "location": "query",
               "repeated": true,
@@ -1154,7 +1154,7 @@
       }
     }
   },
-  "revision": "20210603",
+  "revision": "20210607",
   "rootUrl": "https://people.googleapis.com/",
   "schemas": {
     "Address": {
@@ -1717,11 +1717,11 @@
       "type": "object"
     },
     "DomainMembership": {
-      "description": "A G Suite Domain membership.",
+      "description": "A Google Workspace Domain membership.",
       "id": "DomainMembership",
       "properties": {
         "inViewerDomain": {
-          "description": "True if the person is in the viewer's G Suite domain.",
+          "description": "True if the person is in the viewer's Google Workspace domain.",
           "type": "boolean"
         }
       },
@@ -2714,7 +2714,7 @@
           "enumDescriptions": [
             "Unspecified.",
             "Person.",
-            "[Currents Page.](https://gsuite.google.com/products/currents/)"
+            "[Currents Page.](https://workspace.google.com/products/currents/)"
           ],
           "readOnly": true,
           "type": "string"
@@ -2823,7 +2823,7 @@
           "enumDescriptions": [
             "Unspecified.",
             "Person.",
-            "[Currents Page.](https://gsuite.google.com/products/currents/)"
+            "[Currents Page.](https://workspace.google.com/products/currents/)"
           ],
           "readOnly": true,
           "type": "string"
@@ -2841,7 +2841,7 @@
               "The user type is not known.",
               "The user is a Google user.",
               "The user is a Currents user.",
-              "The user is a G Suite user."
+              "The user is a Google Workspace user."
             ],
             "type": "string"
           },
@@ -3053,10 +3053,10 @@
             "Unspecified.",
             "[Google Account](https://accounts.google.com).",
             "[Google profile](https://profiles.google.com). You can view the profile at [https://profiles.google.com/](https://profiles.google.com/){id}, where {id} is the source id.",
-            "[G Suite domain profile](https://support.google.com/a/answer/1628008).",
+            "[Google Workspace domain profile](https://support.google.com/a/answer/1628008).",
             "[Google contact](https://contacts.google.com). You can view the contact at [https://contact.google.com/](https://contact.google.com/){id}, where {id} is the source id.",
             "[Google \"Other contact\"](https://contacts.google.com/other).",
-            "[G Suite domain shared contact](https://support.google.com/a/answer/9281635)."
+            "[Google Workspace domain shared contact](https://support.google.com/a/answer/9281635)."
           ],
           "type": "string"
         },
diff --git a/googleapiclient/discovery_cache/documents/playablelocations.v3.json b/googleapiclient/discovery_cache/documents/playablelocations.v3.json
index 66932eb..6a98891 100644
--- a/googleapiclient/discovery_cache/documents/playablelocations.v3.json
+++ b/googleapiclient/discovery_cache/documents/playablelocations.v3.json
@@ -146,7 +146,7 @@
       }
     }
   },
-  "revision": "20210605",
+  "revision": "20210608",
   "rootUrl": "https://playablelocations.googleapis.com/",
   "schemas": {
     "GoogleMapsPlayablelocationsV3Impression": {
diff --git a/googleapiclient/discovery_cache/documents/policytroubleshooter.v1.json b/googleapiclient/discovery_cache/documents/policytroubleshooter.v1.json
index 18da66a..d2933a1 100644
--- a/googleapiclient/discovery_cache/documents/policytroubleshooter.v1.json
+++ b/googleapiclient/discovery_cache/documents/policytroubleshooter.v1.json
@@ -128,7 +128,7 @@
       }
     }
   },
-  "revision": "20210528",
+  "revision": "20210604",
   "rootUrl": "https://policytroubleshooter.googleapis.com/",
   "schemas": {
     "GoogleCloudPolicytroubleshooterV1AccessTuple": {
diff --git a/googleapiclient/discovery_cache/documents/policytroubleshooter.v1beta.json b/googleapiclient/discovery_cache/documents/policytroubleshooter.v1beta.json
index 3133769..df8f96f 100644
--- a/googleapiclient/discovery_cache/documents/policytroubleshooter.v1beta.json
+++ b/googleapiclient/discovery_cache/documents/policytroubleshooter.v1beta.json
@@ -128,7 +128,7 @@
       }
     }
   },
-  "revision": "20210528",
+  "revision": "20210604",
   "rootUrl": "https://policytroubleshooter.googleapis.com/",
   "schemas": {
     "GoogleCloudPolicytroubleshooterV1betaAccessTuple": {
diff --git a/googleapiclient/discovery_cache/documents/prod_tt_sasportal.v1alpha1.json b/googleapiclient/discovery_cache/documents/prod_tt_sasportal.v1alpha1.json
index 43d52d2..dc126d0 100644
--- a/googleapiclient/discovery_cache/documents/prod_tt_sasportal.v1alpha1.json
+++ b/googleapiclient/discovery_cache/documents/prod_tt_sasportal.v1alpha1.json
@@ -2484,7 +2484,7 @@
       }
     }
   },
-  "revision": "20210604",
+  "revision": "20210607",
   "rootUrl": "https://prod-tt-sasportal.googleapis.com/",
   "schemas": {
     "SasPortalAssignment": {
diff --git a/googleapiclient/discovery_cache/documents/reseller.v1.json b/googleapiclient/discovery_cache/documents/reseller.v1.json
index dd9da62..0ae0d39 100644
--- a/googleapiclient/discovery_cache/documents/reseller.v1.json
+++ b/googleapiclient/discovery_cache/documents/reseller.v1.json
@@ -631,7 +631,7 @@
       }
     }
   },
-  "revision": "20210601",
+  "revision": "20210606",
   "rootUrl": "https://reseller.googleapis.com/",
   "schemas": {
     "Address": {
diff --git a/googleapiclient/discovery_cache/documents/retail.v2.json b/googleapiclient/discovery_cache/documents/retail.v2.json
index 64e554f..e9659a1 100644
--- a/googleapiclient/discovery_cache/documents/retail.v2.json
+++ b/googleapiclient/discovery_cache/documents/retail.v2.json
@@ -706,7 +706,7 @@
       }
     }
   },
-  "revision": "20210528",
+  "revision": "20210608",
   "rootUrl": "https://retail.googleapis.com/",
   "schemas": {
     "GoogleApiHttpBody": {
diff --git a/googleapiclient/discovery_cache/documents/retail.v2alpha.json b/googleapiclient/discovery_cache/documents/retail.v2alpha.json
index c81c172..470e9c9 100644
--- a/googleapiclient/discovery_cache/documents/retail.v2alpha.json
+++ b/googleapiclient/discovery_cache/documents/retail.v2alpha.json
@@ -706,7 +706,7 @@
       }
     }
   },
-  "revision": "20210528",
+  "revision": "20210608",
   "rootUrl": "https://retail.googleapis.com/",
   "schemas": {
     "GoogleApiHttpBody": {
diff --git a/googleapiclient/discovery_cache/documents/retail.v2beta.json b/googleapiclient/discovery_cache/documents/retail.v2beta.json
index a39d5fd..22956cf 100644
--- a/googleapiclient/discovery_cache/documents/retail.v2beta.json
+++ b/googleapiclient/discovery_cache/documents/retail.v2beta.json
@@ -706,7 +706,7 @@
       }
     }
   },
-  "revision": "20210528",
+  "revision": "20210608",
   "rootUrl": "https://retail.googleapis.com/",
   "schemas": {
     "GoogleApiHttpBody": {
diff --git a/googleapiclient/discovery_cache/documents/safebrowsing.v4.json b/googleapiclient/discovery_cache/documents/safebrowsing.v4.json
index 6b65bea..8fac083 100644
--- a/googleapiclient/discovery_cache/documents/safebrowsing.v4.json
+++ b/googleapiclient/discovery_cache/documents/safebrowsing.v4.json
@@ -261,7 +261,7 @@
       }
     }
   },
-  "revision": "20210604",
+  "revision": "20210607",
   "rootUrl": "https://safebrowsing.googleapis.com/",
   "schemas": {
     "GoogleProtobufEmpty": {
diff --git a/googleapiclient/discovery_cache/documents/sasportal.v1alpha1.json b/googleapiclient/discovery_cache/documents/sasportal.v1alpha1.json
index b9db364..02bc4e3 100644
--- a/googleapiclient/discovery_cache/documents/sasportal.v1alpha1.json
+++ b/googleapiclient/discovery_cache/documents/sasportal.v1alpha1.json
@@ -2483,7 +2483,7 @@
       }
     }
   },
-  "revision": "20210527",
+  "revision": "20210607",
   "rootUrl": "https://sasportal.googleapis.com/",
   "schemas": {
     "SasPortalAssignment": {
diff --git a/googleapiclient/discovery_cache/documents/serviceconsumermanagement.v1.json b/googleapiclient/discovery_cache/documents/serviceconsumermanagement.v1.json
index 0691d81..aa6ade6 100644
--- a/googleapiclient/discovery_cache/documents/serviceconsumermanagement.v1.json
+++ b/googleapiclient/discovery_cache/documents/serviceconsumermanagement.v1.json
@@ -542,7 +542,7 @@
       }
     }
   },
-  "revision": "20210604",
+  "revision": "20210607",
   "rootUrl": "https://serviceconsumermanagement.googleapis.com/",
   "schemas": {
     "AddTenantProjectRequest": {
diff --git a/googleapiclient/discovery_cache/documents/serviceconsumermanagement.v1beta1.json b/googleapiclient/discovery_cache/documents/serviceconsumermanagement.v1beta1.json
index d9548a9..29ee4bc 100644
--- a/googleapiclient/discovery_cache/documents/serviceconsumermanagement.v1beta1.json
+++ b/googleapiclient/discovery_cache/documents/serviceconsumermanagement.v1beta1.json
@@ -500,7 +500,7 @@
       }
     }
   },
-  "revision": "20210604",
+  "revision": "20210607",
   "rootUrl": "https://serviceconsumermanagement.googleapis.com/",
   "schemas": {
     "Api": {
diff --git a/googleapiclient/discovery_cache/documents/servicemanagement.v1.json b/googleapiclient/discovery_cache/documents/servicemanagement.v1.json
index d0af9b2..79b8fea 100644
--- a/googleapiclient/discovery_cache/documents/servicemanagement.v1.json
+++ b/googleapiclient/discovery_cache/documents/servicemanagement.v1.json
@@ -829,7 +829,7 @@
       }
     }
   },
-  "revision": "20210604",
+  "revision": "20210608",
   "rootUrl": "https://servicemanagement.googleapis.com/",
   "schemas": {
     "Advice": {
diff --git a/googleapiclient/discovery_cache/documents/servicenetworking.v1.json b/googleapiclient/discovery_cache/documents/servicenetworking.v1.json
index 78b0fbd..8e71684 100644
--- a/googleapiclient/discovery_cache/documents/servicenetworking.v1.json
+++ b/googleapiclient/discovery_cache/documents/servicenetworking.v1.json
@@ -860,7 +860,7 @@
       }
     }
   },
-  "revision": "20210605",
+  "revision": "20210607",
   "rootUrl": "https://servicenetworking.googleapis.com/",
   "schemas": {
     "AddDnsRecordSetMetadata": {
diff --git a/googleapiclient/discovery_cache/documents/servicenetworking.v1beta.json b/googleapiclient/discovery_cache/documents/servicenetworking.v1beta.json
index 6acd54f..18ba455 100644
--- a/googleapiclient/discovery_cache/documents/servicenetworking.v1beta.json
+++ b/googleapiclient/discovery_cache/documents/servicenetworking.v1beta.json
@@ -307,7 +307,7 @@
       }
     }
   },
-  "revision": "20210605",
+  "revision": "20210607",
   "rootUrl": "https://servicenetworking.googleapis.com/",
   "schemas": {
     "AddDnsRecordSetMetadata": {
diff --git a/googleapiclient/discovery_cache/documents/serviceusage.v1.json b/googleapiclient/discovery_cache/documents/serviceusage.v1.json
index 26bd28e..7334d3c 100644
--- a/googleapiclient/discovery_cache/documents/serviceusage.v1.json
+++ b/googleapiclient/discovery_cache/documents/serviceusage.v1.json
@@ -426,7 +426,7 @@
       }
     }
   },
-  "revision": "20210604",
+  "revision": "20210607",
   "rootUrl": "https://serviceusage.googleapis.com/",
   "schemas": {
     "AdminQuotaPolicy": {
diff --git a/googleapiclient/discovery_cache/documents/serviceusage.v1beta1.json b/googleapiclient/discovery_cache/documents/serviceusage.v1beta1.json
index 49e2ff4..7c89d8d 100644
--- a/googleapiclient/discovery_cache/documents/serviceusage.v1beta1.json
+++ b/googleapiclient/discovery_cache/documents/serviceusage.v1beta1.json
@@ -959,7 +959,7 @@
       }
     }
   },
-  "revision": "20210604",
+  "revision": "20210607",
   "rootUrl": "https://serviceusage.googleapis.com/",
   "schemas": {
     "AdminQuotaPolicy": {
diff --git a/googleapiclient/discovery_cache/documents/streetviewpublish.v1.json b/googleapiclient/discovery_cache/documents/streetviewpublish.v1.json
index d38500f..942ac93 100644
--- a/googleapiclient/discovery_cache/documents/streetviewpublish.v1.json
+++ b/googleapiclient/discovery_cache/documents/streetviewpublish.v1.json
@@ -375,7 +375,7 @@
       }
     }
   },
-  "revision": "20210605",
+  "revision": "20210607",
   "rootUrl": "https://streetviewpublish.googleapis.com/",
   "schemas": {
     "BatchDeletePhotosRequest": {
diff --git a/googleapiclient/discovery_cache/documents/tagmanager.v1.json b/googleapiclient/discovery_cache/documents/tagmanager.v1.json
index 4ef49de..a50b91b 100644
--- a/googleapiclient/discovery_cache/documents/tagmanager.v1.json
+++ b/googleapiclient/discovery_cache/documents/tagmanager.v1.json
@@ -1932,7 +1932,7 @@
       }
     }
   },
-  "revision": "20210602",
+  "revision": "20210607",
   "rootUrl": "https://tagmanager.googleapis.com/",
   "schemas": {
     "Account": {
diff --git a/googleapiclient/discovery_cache/documents/tagmanager.v2.json b/googleapiclient/discovery_cache/documents/tagmanager.v2.json
index 6dd144a..7495d5f 100644
--- a/googleapiclient/discovery_cache/documents/tagmanager.v2.json
+++ b/googleapiclient/discovery_cache/documents/tagmanager.v2.json
@@ -3125,7 +3125,7 @@
       }
     }
   },
-  "revision": "20210602",
+  "revision": "20210607",
   "rootUrl": "https://tagmanager.googleapis.com/",
   "schemas": {
     "Account": {
diff --git a/googleapiclient/discovery_cache/documents/testing.v1.json b/googleapiclient/discovery_cache/documents/testing.v1.json
index 1ac8aeb..2e06709 100644
--- a/googleapiclient/discovery_cache/documents/testing.v1.json
+++ b/googleapiclient/discovery_cache/documents/testing.v1.json
@@ -282,7 +282,7 @@
       }
     }
   },
-  "revision": "20210531",
+  "revision": "20210607",
   "rootUrl": "https://testing.googleapis.com/",
   "schemas": {
     "Account": {
diff --git a/googleapiclient/discovery_cache/documents/toolresults.v1beta3.json b/googleapiclient/discovery_cache/documents/toolresults.v1beta3.json
index 90b0c92..ec307c5 100644
--- a/googleapiclient/discovery_cache/documents/toolresults.v1beta3.json
+++ b/googleapiclient/discovery_cache/documents/toolresults.v1beta3.json
@@ -1463,7 +1463,7 @@
       }
     }
   },
-  "revision": "20210605",
+  "revision": "20210608",
   "rootUrl": "https://toolresults.googleapis.com/",
   "schemas": {
     "ANR": {
diff --git a/googleapiclient/discovery_cache/documents/trafficdirector.v2.json b/googleapiclient/discovery_cache/documents/trafficdirector.v2.json
index cc6a4a0..4211fda 100644
--- a/googleapiclient/discovery_cache/documents/trafficdirector.v2.json
+++ b/googleapiclient/discovery_cache/documents/trafficdirector.v2.json
@@ -128,7 +128,7 @@
       }
     }
   },
-  "revision": "20210513",
+  "revision": "20210528",
   "rootUrl": "https://trafficdirector.googleapis.com/",
   "schemas": {
     "Address": {
diff --git a/googleapiclient/discovery_cache/documents/transcoder.v1beta1.json b/googleapiclient/discovery_cache/documents/transcoder.v1beta1.json
index 9133d0f..e324d85 100644
--- a/googleapiclient/discovery_cache/documents/transcoder.v1beta1.json
+++ b/googleapiclient/discovery_cache/documents/transcoder.v1beta1.json
@@ -355,7 +355,7 @@
       }
     }
   },
-  "revision": "20210525",
+  "revision": "20210608",
   "rootUrl": "https://transcoder.googleapis.com/",
   "schemas": {
     "AdBreak": {
diff --git a/googleapiclient/discovery_cache/documents/vault.v1.json b/googleapiclient/discovery_cache/documents/vault.v1.json
index 0802272..5658977 100644
--- a/googleapiclient/discovery_cache/documents/vault.v1.json
+++ b/googleapiclient/discovery_cache/documents/vault.v1.json
@@ -1193,7 +1193,7 @@
       }
     }
   },
-  "revision": "20210601",
+  "revision": "20210607",
   "rootUrl": "https://vault.googleapis.com/",
   "schemas": {
     "AccountCount": {
diff --git a/googleapiclient/discovery_cache/documents/vectortile.v1.json b/googleapiclient/discovery_cache/documents/vectortile.v1.json
index a1fc842..e6331a4 100644
--- a/googleapiclient/discovery_cache/documents/vectortile.v1.json
+++ b/googleapiclient/discovery_cache/documents/vectortile.v1.json
@@ -343,7 +343,7 @@
       }
     }
   },
-  "revision": "20210605",
+  "revision": "20210608",
   "rootUrl": "https://vectortile.googleapis.com/",
   "schemas": {
     "Area": {
diff --git a/googleapiclient/discovery_cache/documents/websecurityscanner.v1.json b/googleapiclient/discovery_cache/documents/websecurityscanner.v1.json
index ff780b1..c794c1b 100644
--- a/googleapiclient/discovery_cache/documents/websecurityscanner.v1.json
+++ b/googleapiclient/discovery_cache/documents/websecurityscanner.v1.json
@@ -526,7 +526,7 @@
       }
     }
   },
-  "revision": "20210522",
+  "revision": "20210604",
   "rootUrl": "https://websecurityscanner.googleapis.com/",
   "schemas": {
     "Authentication": {
diff --git a/googleapiclient/discovery_cache/documents/websecurityscanner.v1alpha.json b/googleapiclient/discovery_cache/documents/websecurityscanner.v1alpha.json
index 32853ee..a62309f 100644
--- a/googleapiclient/discovery_cache/documents/websecurityscanner.v1alpha.json
+++ b/googleapiclient/discovery_cache/documents/websecurityscanner.v1alpha.json
@@ -526,7 +526,7 @@
       }
     }
   },
-  "revision": "20210522",
+  "revision": "20210604",
   "rootUrl": "https://websecurityscanner.googleapis.com/",
   "schemas": {
     "Authentication": {
diff --git a/googleapiclient/discovery_cache/documents/websecurityscanner.v1beta.json b/googleapiclient/discovery_cache/documents/websecurityscanner.v1beta.json
index 89e8f20..9be1052 100644
--- a/googleapiclient/discovery_cache/documents/websecurityscanner.v1beta.json
+++ b/googleapiclient/discovery_cache/documents/websecurityscanner.v1beta.json
@@ -526,7 +526,7 @@
       }
     }
   },
-  "revision": "20210522",
+  "revision": "20210604",
   "rootUrl": "https://websecurityscanner.googleapis.com/",
   "schemas": {
     "Authentication": {
diff --git a/googleapiclient/discovery_cache/documents/workflowexecutions.v1.json b/googleapiclient/discovery_cache/documents/workflowexecutions.v1.json
index 95f825b..cf7233b 100644
--- a/googleapiclient/discovery_cache/documents/workflowexecutions.v1.json
+++ b/googleapiclient/discovery_cache/documents/workflowexecutions.v1.json
@@ -269,7 +269,7 @@
       }
     }
   },
-  "revision": "20210526",
+  "revision": "20210601",
   "rootUrl": "https://workflowexecutions.googleapis.com/",
   "schemas": {
     "CancelExecutionRequest": {
diff --git a/googleapiclient/discovery_cache/documents/workflowexecutions.v1beta.json b/googleapiclient/discovery_cache/documents/workflowexecutions.v1beta.json
index a145c53..af58e2b 100644
--- a/googleapiclient/discovery_cache/documents/workflowexecutions.v1beta.json
+++ b/googleapiclient/discovery_cache/documents/workflowexecutions.v1beta.json
@@ -269,7 +269,7 @@
       }
     }
   },
-  "revision": "20210526",
+  "revision": "20210601",
   "rootUrl": "https://workflowexecutions.googleapis.com/",
   "schemas": {
     "CancelExecutionRequest": {
diff --git a/googleapiclient/discovery_cache/documents/workflows.v1beta.json b/googleapiclient/discovery_cache/documents/workflows.v1beta.json
index d89d055..e4ac8fa 100644
--- a/googleapiclient/discovery_cache/documents/workflows.v1beta.json
+++ b/googleapiclient/discovery_cache/documents/workflows.v1beta.json
@@ -444,7 +444,7 @@
       }
     }
   },
-  "revision": "20210520",
+  "revision": "20210603",
   "rootUrl": "https://workflows.googleapis.com/",
   "schemas": {
     "Empty": {
diff --git a/googleapiclient/discovery_cache/documents/youtube.v3.json b/googleapiclient/discovery_cache/documents/youtube.v3.json
index 697923f..7c396a3 100644
--- a/googleapiclient/discovery_cache/documents/youtube.v3.json
+++ b/googleapiclient/discovery_cache/documents/youtube.v3.json
@@ -3764,7 +3764,7 @@
       }
     }
   },
-  "revision": "20210602",
+  "revision": "20210608",
   "rootUrl": "https://youtube.googleapis.com/",
   "schemas": {
     "AbuseReport": {