chore: Update discovery artifacts (#1308)

## Discovery Artifact Change Summary:
sqladminv1beta4[ [More details]](https://github.com/googleapis/google-api-python-client/commit/cc4e16a828715cc194d180da6c546126bcd829fe)

chore(accesscontextmanager): update the api
chore(apigateway): update the api
chore(area120tables): update the api
chore(bigquery): update the api
chore(bigqueryconnection): update the api
chore(chromemanagement): update the api
chore(chromepolicy): update the api
chore(chromeuxreport): update the api
chore(clouddebugger): update the api
chore(cloudscheduler): update the api
chore(container): update the api
chore(customsearch): update the api
chore(datalabeling): update the api
chore(datamigration): update the api
chore(essentialcontacts): update the api
chore(factchecktools): update the api
chore(firebase): update the api
chore(firebasedatabase): update the api
chore(gkehub): update the api
chore(gmailpostmastertools): update the api
chore(libraryagent): update the api
chore(lifesciences): update the api
chore(localservices): update the api
chore(monitoring): update the api
chore(networkmanagement): update the api
chore(orgpolicy): update the api
chore(pagespeedonline): update the api
chore(people): update the api
chore(playcustomapp): update the api
chore(prod_tt_sasportal): update the api
chore(pubsublite): update the api
chore(redis): update the api
chore(safebrowsing): update the api
chore(servicemanagement): update the api
feat(sqladmin): update the api
chore(streetviewpublish): update the api
chore(tpu): update the api
chore(trafficdirector): update the api
chore(docs): Add new discovery artifacts and reference documents
diff --git a/docs/dyn/bigtableadmin_v2.projects.instances.clusters.html b/docs/dyn/bigtableadmin_v2.projects.instances.clusters.html
index a5440eb..d9ead7c 100644
--- a/docs/dyn/bigtableadmin_v2.projects.instances.clusters.html
+++ b/docs/dyn/bigtableadmin_v2.projects.instances.clusters.html
@@ -98,11 +98,8 @@
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
-  <code><a href="#partialUpdateCluster">partialUpdateCluster(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Partially updates a cluster within a project. This method is the preferred way to update a Cluster. </p>
-<p class="toc_element">
   <code><a href="#update">update(name, body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates a cluster within an instance. UpdateCluster is deprecated. Please use PartialUpdateCluster instead.</p>
+<p class="firstline">Updates a cluster within an instance.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="close">close()</code>
@@ -253,58 +250,8 @@
 </div>
 
 <div class="method">
-    <code class="details" id="partialUpdateCluster">partialUpdateCluster(name, body=None, updateMask=None, x__xgafv=None)</code>
-  <pre>Partially updates a cluster within a project. This method is the preferred way to update a Cluster. 
-
-Args:
-  name: string, The unique name of the cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/a-z*`. (required)
-  body: object, The request body.
-    The object takes the form of:
-
-{ # A resizable group of nodes in a particular cloud location, capable of serving all Tables in the parent Instance.
-  &quot;defaultStorageType&quot;: &quot;A String&quot;, # Immutable. The type of storage used by this cluster to serve its parent instance&#x27;s tables, unless explicitly overridden.
-  &quot;encryptionConfig&quot;: { # Cloud Key Management Service (Cloud KMS) settings for a CMEK-protected cluster. # Immutable. The encryption configuration for CMEK-protected clusters.
-    &quot;kmsKeyName&quot;: &quot;A String&quot;, # Describes the Cloud KMS encryption key that will be used to protect the destination Bigtable cluster. The requirements for this key are: 1) The Cloud Bigtable service account associated with the project that contains this cluster must be granted the `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key. 2) Only regional keys can be used and the region of the CMEK key must match the region of the cluster. 3) All clusters within an instance must use the same CMEK key. Values are of the form `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}`
-  },
-  &quot;location&quot;: &quot;A String&quot;, # Immutable. The location where this cluster&#x27;s nodes and storage reside. For best performance, clients should be located as close as possible to this cluster. Currently only zones are supported, so values should be of the form `projects/{project}/locations/{zone}`.
-  &quot;name&quot;: &quot;A String&quot;, # The unique name of the cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/a-z*`.
-  &quot;serveNodes&quot;: 42, # Required. The number of nodes allocated to this cluster. More nodes enable higher throughput and more consistent performance.
-  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the cluster.
-}
-
-  updateMask: string, Required. The subset of Cluster fields which should be replaced. Must be explicitly set.
-  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="update">update(name, body=None, x__xgafv=None)</code>
-  <pre>Updates a cluster within an instance. UpdateCluster is deprecated. Please use PartialUpdateCluster instead.
+  <pre>Updates a cluster within an instance.
 
 Args:
   name: string, The unique name of the cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/a-z*`. (required)
diff --git a/docs/dyn/bigtableadmin_v2.projects.instances.tables.html b/docs/dyn/bigtableadmin_v2.projects.instances.tables.html
index eb8aaf2..170fa95 100644
--- a/docs/dyn/bigtableadmin_v2.projects.instances.tables.html
+++ b/docs/dyn/bigtableadmin_v2.projects.instances.tables.html
@@ -359,7 +359,7 @@
       NAME_ONLY - Only populates `name`.
       SCHEMA_VIEW - Only populates `name` and fields related to the table&#x27;s schema.
       REPLICATION_VIEW - Only populates `name` and fields related to the table&#x27;s replication state.
-      ENCRYPTION_VIEW - Only populates `name` and fields related to the table&#x27;s encryption state.
+      ENCRYPTION_VIEW - Only populates &#x27;name&#x27; and fields related to the table&#x27;s encryption state.
       FULL - Populates all fields.
   x__xgafv: string, V1 error format.
     Allowed values
@@ -492,7 +492,7 @@
       NAME_ONLY - Only populates `name`.
       SCHEMA_VIEW - Only populates `name` and fields related to the table&#x27;s schema.
       REPLICATION_VIEW - Only populates `name` and fields related to the table&#x27;s replication state.
-      ENCRYPTION_VIEW - Only populates `name` and fields related to the table&#x27;s encryption state.
+      ENCRYPTION_VIEW - Only populates &#x27;name&#x27; and fields related to the table&#x27;s encryption state.
       FULL - Populates all fields.
   x__xgafv: string, V1 error format.
     Allowed values
diff --git a/docs/dyn/cloudscheduler_v1.projects.locations.html b/docs/dyn/cloudscheduler_v1.projects.locations.html
index 57c0e13..6aaa7a3 100644
--- a/docs/dyn/cloudscheduler_v1.projects.locations.html
+++ b/docs/dyn/cloudscheduler_v1.projects.locations.html
@@ -131,7 +131,7 @@
 Args:
   name: string, The resource that owns the locations collection, if applicable. (required)
   filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
-  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageSize: integer, The maximum number of results to return. If not set, the service selects a default.
   pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
diff --git a/docs/dyn/cloudscheduler_v1beta1.projects.locations.html b/docs/dyn/cloudscheduler_v1beta1.projects.locations.html
index 6bc70ec..ef53d75 100644
--- a/docs/dyn/cloudscheduler_v1beta1.projects.locations.html
+++ b/docs/dyn/cloudscheduler_v1beta1.projects.locations.html
@@ -131,7 +131,7 @@
 Args:
   name: string, The resource that owns the locations collection, if applicable. (required)
   filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
-  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageSize: integer, The maximum number of results to return. If not set, the service selects a default.
   pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
diff --git a/docs/dyn/datamigration_v1.projects.locations.html b/docs/dyn/datamigration_v1.projects.locations.html
index 2b21543..e371e96 100644
--- a/docs/dyn/datamigration_v1.projects.locations.html
+++ b/docs/dyn/datamigration_v1.projects.locations.html
@@ -141,7 +141,7 @@
 Args:
   name: string, The resource that owns the locations collection, if applicable. (required)
   filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
-  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageSize: integer, The maximum number of results to return. If not set, the service selects a default.
   pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
diff --git a/docs/dyn/datamigration_v1beta1.projects.locations.html b/docs/dyn/datamigration_v1beta1.projects.locations.html
index fb9c210..3bba587 100644
--- a/docs/dyn/datamigration_v1beta1.projects.locations.html
+++ b/docs/dyn/datamigration_v1beta1.projects.locations.html
@@ -141,7 +141,7 @@
 Args:
   name: string, The resource that owns the locations collection, if applicable. (required)
   filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
-  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageSize: integer, The maximum number of results to return. If not set, the service selects a default.
   pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
diff --git a/docs/dyn/datastore_v1.projects.html b/docs/dyn/datastore_v1.projects.html
index 253d033..3dcc1ec 100644
--- a/docs/dyn/datastore_v1.projects.html
+++ b/docs/dyn/datastore_v1.projects.html
@@ -248,40 +248,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 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.
@@ -299,40 +266,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 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.
@@ -350,40 +284,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 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
         },
       },
     },
@@ -602,40 +503,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 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.
@@ -659,40 +527,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 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.
@@ -790,7 +625,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 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].
@@ -829,7 +681,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 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].
@@ -890,7 +759,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 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].
@@ -977,40 +863,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 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.
@@ -1049,7 +902,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 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/file_v1.projects.locations.instances.html b/docs/dyn/file_v1.projects.locations.instances.html
index f9a20c2..fcdcd1e 100644
--- a/docs/dyn/file_v1.projects.locations.instances.html
+++ b/docs/dyn/file_v1.projects.locations.instances.html
@@ -151,6 +151,7 @@
       &quot;reservedIpRange&quot;: &quot;A String&quot;, # A /29 CIDR block in one of the [internal IP address ranges](https://www.arin.net/knowledge/address_filters.html) that identifies the range of IP addresses reserved for this instance. For example, 10.0.0.0/29 or 192.168.0.0/29. The range you specify can&#x27;t overlap with either existing subnets or assigned IP address ranges for other Cloud Filestore instances in the selected VPC network.
     },
   ],
+  &quot;satisfiesPzs&quot;: True or False, # Output only. Reserved for future use.
   &quot;state&quot;: &quot;A String&quot;, # Output only. The instance state.
   &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. Additional information about the instance state, if available.
   &quot;tier&quot;: &quot;A String&quot;, # The service tier of the instance.
@@ -273,6 +274,7 @@
       &quot;reservedIpRange&quot;: &quot;A String&quot;, # A /29 CIDR block in one of the [internal IP address ranges](https://www.arin.net/knowledge/address_filters.html) that identifies the range of IP addresses reserved for this instance. For example, 10.0.0.0/29 or 192.168.0.0/29. The range you specify can&#x27;t overlap with either existing subnets or assigned IP address ranges for other Cloud Filestore instances in the selected VPC network.
     },
   ],
+  &quot;satisfiesPzs&quot;: True or False, # Output only. Reserved for future use.
   &quot;state&quot;: &quot;A String&quot;, # Output only. The instance state.
   &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. Additional information about the instance state, if available.
   &quot;tier&quot;: &quot;A String&quot;, # The service tier of the instance.
@@ -337,6 +339,7 @@
           &quot;reservedIpRange&quot;: &quot;A String&quot;, # A /29 CIDR block in one of the [internal IP address ranges](https://www.arin.net/knowledge/address_filters.html) that identifies the range of IP addresses reserved for this instance. For example, 10.0.0.0/29 or 192.168.0.0/29. The range you specify can&#x27;t overlap with either existing subnets or assigned IP address ranges for other Cloud Filestore instances in the selected VPC network.
         },
       ],
+      &quot;satisfiesPzs&quot;: True or False, # Output only. Reserved for future use.
       &quot;state&quot;: &quot;A String&quot;, # Output only. The instance state.
       &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. Additional information about the instance state, if available.
       &quot;tier&quot;: &quot;A String&quot;, # The service tier of the instance.
@@ -410,6 +413,7 @@
       &quot;reservedIpRange&quot;: &quot;A String&quot;, # A /29 CIDR block in one of the [internal IP address ranges](https://www.arin.net/knowledge/address_filters.html) that identifies the range of IP addresses reserved for this instance. For example, 10.0.0.0/29 or 192.168.0.0/29. The range you specify can&#x27;t overlap with either existing subnets or assigned IP address ranges for other Cloud Filestore instances in the selected VPC network.
     },
   ],
+  &quot;satisfiesPzs&quot;: True or False, # Output only. Reserved for future use.
   &quot;state&quot;: &quot;A String&quot;, # Output only. The instance state.
   &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. Additional information about the instance state, if available.
   &quot;tier&quot;: &quot;A String&quot;, # The service tier of the instance.
diff --git a/docs/dyn/file_v1beta1.projects.locations.instances.html b/docs/dyn/file_v1beta1.projects.locations.instances.html
index 064051a..61e77b2 100644
--- a/docs/dyn/file_v1beta1.projects.locations.instances.html
+++ b/docs/dyn/file_v1beta1.projects.locations.instances.html
@@ -151,6 +151,7 @@
       &quot;reservedIpRange&quot;: &quot;A String&quot;, # A /29 CIDR block for Basic or a /23 CIDR block for High Scale in one of the [internal IP address ranges](https://www.arin.net/knowledge/address_filters.html) that identifies the range of IP addresses reserved for this instance. For example, 10.0.0.0/29 or 192.168.0.0/23. The range you specify can&#x27;t overlap with either existing subnets or assigned IP address ranges for other Cloud Filestore instances in the selected VPC network.
     },
   ],
+  &quot;satisfiesPzs&quot;: True or False, # Output only. Reserved for future use.
   &quot;state&quot;: &quot;A String&quot;, # Output only. The instance state.
   &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. Additional information about the instance state, if available.
   &quot;tier&quot;: &quot;A String&quot;, # The service tier of the instance.
@@ -273,6 +274,7 @@
       &quot;reservedIpRange&quot;: &quot;A String&quot;, # A /29 CIDR block for Basic or a /23 CIDR block for High Scale in one of the [internal IP address ranges](https://www.arin.net/knowledge/address_filters.html) that identifies the range of IP addresses reserved for this instance. For example, 10.0.0.0/29 or 192.168.0.0/23. The range you specify can&#x27;t overlap with either existing subnets or assigned IP address ranges for other Cloud Filestore instances in the selected VPC network.
     },
   ],
+  &quot;satisfiesPzs&quot;: True or False, # Output only. Reserved for future use.
   &quot;state&quot;: &quot;A String&quot;, # Output only. The instance state.
   &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. Additional information about the instance state, if available.
   &quot;tier&quot;: &quot;A String&quot;, # The service tier of the instance.
@@ -337,6 +339,7 @@
           &quot;reservedIpRange&quot;: &quot;A String&quot;, # A /29 CIDR block for Basic or a /23 CIDR block for High Scale in one of the [internal IP address ranges](https://www.arin.net/knowledge/address_filters.html) that identifies the range of IP addresses reserved for this instance. For example, 10.0.0.0/29 or 192.168.0.0/23. The range you specify can&#x27;t overlap with either existing subnets or assigned IP address ranges for other Cloud Filestore instances in the selected VPC network.
         },
       ],
+      &quot;satisfiesPzs&quot;: True or False, # Output only. Reserved for future use.
       &quot;state&quot;: &quot;A String&quot;, # Output only. The instance state.
       &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. Additional information about the instance state, if available.
       &quot;tier&quot;: &quot;A String&quot;, # The service tier of the instance.
@@ -410,6 +413,7 @@
       &quot;reservedIpRange&quot;: &quot;A String&quot;, # A /29 CIDR block for Basic or a /23 CIDR block for High Scale in one of the [internal IP address ranges](https://www.arin.net/knowledge/address_filters.html) that identifies the range of IP addresses reserved for this instance. For example, 10.0.0.0/29 or 192.168.0.0/23. The range you specify can&#x27;t overlap with either existing subnets or assigned IP address ranges for other Cloud Filestore instances in the selected VPC network.
     },
   ],
+  &quot;satisfiesPzs&quot;: True or False, # Output only. Reserved for future use.
   &quot;state&quot;: &quot;A String&quot;, # Output only. The instance state.
   &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. Additional information about the instance state, if available.
   &quot;tier&quot;: &quot;A String&quot;, # The service tier of the instance.
diff --git a/docs/dyn/firestore_v1.projects.databases.documents.html b/docs/dyn/firestore_v1.projects.databases.documents.html
index 40e9d55..dc47e0d 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 must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                  },
-                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                  &quot;mapValue&quot;: { # A map value. # A map value.
-                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                      &quot;a_key&quot;: # Object with schema name: Value
-                    },
-                  },
-                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-                },
+                # Object with schema name: Value
               ],
             },
             &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
             &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -274,7 +263,11 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -294,7 +287,11 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -315,26 +312,7 @@
             },
             &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                { # A message that can hold any of the supported value types.
-                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                  &quot;booleanValue&quot;: True or False, # A boolean value.
-                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                  &quot;doubleValue&quot;: 3.14, # A double value.
-                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                  },
-                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                  &quot;mapValue&quot;: { # A map value. # A map value.
-                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                      &quot;a_key&quot;: # Object with schema name: Value
-                    },
-                  },
-                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-                },
+                # Object with schema name: Value
               ],
             },
             &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -345,7 +323,11 @@
         &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
         &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
           &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -377,31 +359,16 @@
         { # A transformation of a field of the document.
           &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              { # A message that can hold any of the supported value types.
-                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;booleanValue&quot;: True or False, # A boolean value.
-                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                &quot;doubleValue&quot;: 3.14, # A double value.
-                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                },
-                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                &quot;mapValue&quot;: { # A map value. # A map value.
-                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                    &quot;a_key&quot;: # Object with schema name: Value
-                  },
-                },
-                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-              },
+              # Object with schema name: Value
             ],
           },
           &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
           &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -421,7 +388,11 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -441,7 +412,11 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -462,26 +437,7 @@
           },
           &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              { # A message that can hold any of the supported value types.
-                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;booleanValue&quot;: True or False, # A boolean value.
-                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                &quot;doubleValue&quot;: 3.14, # A double value.
-                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                },
-                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                &quot;mapValue&quot;: { # A map value. # A map value.
-                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                    &quot;a_key&quot;: # Object with schema name: Value
-                  },
-                },
-                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-              },
+              # Object with schema name: Value
             ],
           },
           &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -515,7 +471,11 @@
     { # The result of applying a write.
       &quot;transformResults&quot;: [ # The results of applying each DocumentTransform.FieldTransform, in the same order.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -603,31 +563,16 @@
           { # A transformation of a field of the document.
             &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                { # A message that can hold any of the supported value types.
-                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                  &quot;booleanValue&quot;: True or False, # A boolean value.
-                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                  &quot;doubleValue&quot;: 3.14, # A double value.
-                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                  },
-                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                  &quot;mapValue&quot;: { # A map value. # A map value.
-                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                      &quot;a_key&quot;: # Object with schema name: Value
-                    },
-                  },
-                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-                },
+                # Object with schema name: Value
               ],
             },
             &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
             &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -647,7 +592,11 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -667,7 +616,11 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -688,26 +641,7 @@
             },
             &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                { # A message that can hold any of the supported value types.
-                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                  &quot;booleanValue&quot;: True or False, # A boolean value.
-                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                  &quot;doubleValue&quot;: 3.14, # A double value.
-                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                  },
-                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                  &quot;mapValue&quot;: { # A map value. # A map value.
-                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                      &quot;a_key&quot;: # Object with schema name: Value
-                    },
-                  },
-                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-                },
+                # Object with schema name: Value
               ],
             },
             &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -718,7 +652,11 @@
         &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
         &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
           &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -750,31 +688,16 @@
         { # A transformation of a field of the document.
           &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              { # A message that can hold any of the supported value types.
-                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;booleanValue&quot;: True or False, # A boolean value.
-                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                &quot;doubleValue&quot;: 3.14, # A double value.
-                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                },
-                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                &quot;mapValue&quot;: { # A map value. # A map value.
-                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                    &quot;a_key&quot;: # Object with schema name: Value
-                  },
-                },
-                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-              },
+              # Object with schema name: Value
             ],
           },
           &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
           &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -794,7 +717,11 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -814,7 +741,11 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -835,26 +766,7 @@
           },
           &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              { # A message that can hold any of the supported value types.
-                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;booleanValue&quot;: True or False, # A boolean value.
-                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                &quot;doubleValue&quot;: 3.14, # A double value.
-                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                },
-                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                &quot;mapValue&quot;: { # A map value. # A map value.
-                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                    &quot;a_key&quot;: # Object with schema name: Value
-                  },
-                },
-                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-              },
+              # Object with schema name: Value
             ],
           },
           &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -878,7 +790,11 @@
     { # The result of applying a write.
       &quot;transformResults&quot;: [ # The results of applying each DocumentTransform.FieldTransform, in the same order.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -918,7 +834,11 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
   &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
     &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-      &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+      &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;values&quot;: [ # Values in the array.
+          # Object with schema name: Value
+        ],
+      },
       &quot;booleanValue&quot;: True or False, # A boolean value.
       &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
       &quot;doubleValue&quot;: 3.14, # A double value.
@@ -956,7 +876,11 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
   &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
     &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-      &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+      &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;values&quot;: [ # Values in the array.
+          # Object with schema name: Value
+        ],
+      },
       &quot;booleanValue&quot;: True or False, # A boolean value.
       &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
       &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1022,7 +946,11 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
   &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
     &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-      &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+      &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;values&quot;: [ # Values in the array.
+          # Object with schema name: Value
+        ],
+      },
       &quot;booleanValue&quot;: True or False, # A boolean value.
       &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
       &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1075,7 +1003,11 @@
       &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
       &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
         &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1185,7 +1117,11 @@
           &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
           &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
             { # A message that can hold any of the supported value types.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1233,7 +1169,11 @@
           &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
           &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
             { # A message that can hold any of the supported value types.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1267,7 +1207,11 @@
             },
             &quot;op&quot;: &quot;A String&quot;, # The operator to filter by.
             &quot;value&quot;: { # A message that can hold any of the supported value types. # The value to compare to.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1320,7 +1264,11 @@
       &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
       &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
         &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1406,7 +1354,11 @@
       &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
       &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1454,7 +1406,11 @@
       &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
       &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1488,7 +1444,11 @@
         },
         &quot;op&quot;: &quot;A String&quot;, # The operator to filter by.
         &quot;value&quot;: { # A message that can hold any of the supported value types. # The value to compare to.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1533,7 +1493,11 @@
       &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
       &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1585,7 +1549,11 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
   &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
     &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-      &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+      &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;values&quot;: [ # Values in the array.
+          # Object with schema name: Value
+        ],
+      },
       &quot;booleanValue&quot;: True or False, # A boolean value.
       &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
       &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1625,7 +1593,11 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
   &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
     &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-      &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+      &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;values&quot;: [ # Values in the array.
+          # Object with schema name: Value
+        ],
+      },
       &quot;booleanValue&quot;: True or False, # A boolean value.
       &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
       &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1699,7 +1671,11 @@
       &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
       &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1747,7 +1723,11 @@
       &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
       &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1781,7 +1761,11 @@
         },
         &quot;op&quot;: &quot;A String&quot;, # The operator to filter by.
         &quot;value&quot;: { # A message that can hold any of the supported value types. # The value to compare to.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1825,7 +1809,11 @@
     &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
     &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
       &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-        &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;values&quot;: [ # Values in the array.
+            # Object with schema name: Value
+          ],
+        },
         &quot;booleanValue&quot;: True or False, # A boolean value.
         &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
         &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1882,31 +1870,16 @@
           { # A transformation of a field of the document.
             &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                { # A message that can hold any of the supported value types.
-                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                  &quot;booleanValue&quot;: True or False, # A boolean value.
-                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                  &quot;doubleValue&quot;: 3.14, # A double value.
-                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                  },
-                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                  &quot;mapValue&quot;: { # A map value. # A map value.
-                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                      &quot;a_key&quot;: # Object with schema name: Value
-                    },
-                  },
-                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-                },
+                # Object with schema name: Value
               ],
             },
             &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
             &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1926,7 +1899,11 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1946,7 +1923,11 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1967,26 +1948,7 @@
             },
             &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                { # A message that can hold any of the supported value types.
-                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                  &quot;booleanValue&quot;: True or False, # A boolean value.
-                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                  &quot;doubleValue&quot;: 3.14, # A double value.
-                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                  },
-                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                  &quot;mapValue&quot;: { # A map value. # A map value.
-                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                      &quot;a_key&quot;: # Object with schema name: Value
-                    },
-                  },
-                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-                },
+                # Object with schema name: Value
               ],
             },
             &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -1997,7 +1959,11 @@
         &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
         &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
           &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -2029,31 +1995,16 @@
         { # A transformation of a field of the document.
           &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              { # A message that can hold any of the supported value types.
-                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;booleanValue&quot;: True or False, # A boolean value.
-                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                &quot;doubleValue&quot;: 3.14, # A double value.
-                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                },
-                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                &quot;mapValue&quot;: { # A map value. # A map value.
-                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                    &quot;a_key&quot;: # Object with schema name: Value
-                  },
-                },
-                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-              },
+              # Object with schema name: Value
             ],
           },
           &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
           &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -2073,7 +2024,11 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -2093,7 +2048,11 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -2114,26 +2073,7 @@
           },
           &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              { # A message that can hold any of the supported value types.
-                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;booleanValue&quot;: True or False, # A boolean value.
-                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                &quot;doubleValue&quot;: 3.14, # A double value.
-                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                },
-                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                &quot;mapValue&quot;: { # A map value. # A map value.
-                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                    &quot;a_key&quot;: # Object with schema name: Value
-                  },
-                },
-                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-              },
+              # Object with schema name: Value
             ],
           },
           &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -2159,7 +2099,11 @@
     { # The result of applying a write.
       &quot;transformResults&quot;: [ # The results of applying each DocumentTransform.FieldTransform, in the same order.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
diff --git a/docs/dyn/firestore_v1beta1.projects.databases.documents.html b/docs/dyn/firestore_v1beta1.projects.databases.documents.html
index ca54a2b..2a0e29b 100644
--- a/docs/dyn/firestore_v1beta1.projects.databases.documents.html
+++ b/docs/dyn/firestore_v1beta1.projects.databases.documents.html
@@ -175,7 +175,11 @@
     &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
     &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
       &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-        &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;values&quot;: [ # Values in the array.
+            # Object with schema name: Value
+          ],
+        },
         &quot;booleanValue&quot;: True or False, # A boolean value.
         &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
         &quot;doubleValue&quot;: 3.14, # A double value.
@@ -230,31 +234,16 @@
           { # A transformation of a field of the document.
             &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                { # A message that can hold any of the supported value types.
-                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                  &quot;booleanValue&quot;: True or False, # A boolean value.
-                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                  &quot;doubleValue&quot;: 3.14, # A double value.
-                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                  },
-                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                  &quot;mapValue&quot;: { # A map value. # A map value.
-                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                      &quot;a_key&quot;: # Object with schema name: Value
-                    },
-                  },
-                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-                },
+                # Object with schema name: Value
               ],
             },
             &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
             &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -274,7 +263,11 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -294,7 +287,11 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -315,26 +312,7 @@
             },
             &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                { # A message that can hold any of the supported value types.
-                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                  &quot;booleanValue&quot;: True or False, # A boolean value.
-                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                  &quot;doubleValue&quot;: 3.14, # A double value.
-                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                  },
-                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                  &quot;mapValue&quot;: { # A map value. # A map value.
-                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                      &quot;a_key&quot;: # Object with schema name: Value
-                    },
-                  },
-                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-                },
+                # Object with schema name: Value
               ],
             },
             &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -345,7 +323,11 @@
         &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
         &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
           &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -377,31 +359,16 @@
         { # A transformation of a field of the document.
           &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              { # A message that can hold any of the supported value types.
-                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;booleanValue&quot;: True or False, # A boolean value.
-                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                &quot;doubleValue&quot;: 3.14, # A double value.
-                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                },
-                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                &quot;mapValue&quot;: { # A map value. # A map value.
-                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                    &quot;a_key&quot;: # Object with schema name: Value
-                  },
-                },
-                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-              },
+              # Object with schema name: Value
             ],
           },
           &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
           &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -421,7 +388,11 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -441,7 +412,11 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -462,26 +437,7 @@
           },
           &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              { # A message that can hold any of the supported value types.
-                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;booleanValue&quot;: True or False, # A boolean value.
-                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                &quot;doubleValue&quot;: 3.14, # A double value.
-                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                },
-                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                &quot;mapValue&quot;: { # A map value. # A map value.
-                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                    &quot;a_key&quot;: # Object with schema name: Value
-                  },
-                },
-                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-              },
+              # Object with schema name: Value
             ],
           },
           &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -515,7 +471,11 @@
     { # The result of applying a write.
       &quot;transformResults&quot;: [ # The results of applying each DocumentTransform.FieldTransform, in the same order.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -603,31 +563,16 @@
           { # A transformation of a field of the document.
             &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                { # A message that can hold any of the supported value types.
-                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                  &quot;booleanValue&quot;: True or False, # A boolean value.
-                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                  &quot;doubleValue&quot;: 3.14, # A double value.
-                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                  },
-                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                  &quot;mapValue&quot;: { # A map value. # A map value.
-                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                      &quot;a_key&quot;: # Object with schema name: Value
-                    },
-                  },
-                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-                },
+                # Object with schema name: Value
               ],
             },
             &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
             &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -647,7 +592,11 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -667,7 +616,11 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -688,26 +641,7 @@
             },
             &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                { # A message that can hold any of the supported value types.
-                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                  &quot;booleanValue&quot;: True or False, # A boolean value.
-                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                  &quot;doubleValue&quot;: 3.14, # A double value.
-                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                  },
-                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                  &quot;mapValue&quot;: { # A map value. # A map value.
-                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                      &quot;a_key&quot;: # Object with schema name: Value
-                    },
-                  },
-                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-                },
+                # Object with schema name: Value
               ],
             },
             &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -718,7 +652,11 @@
         &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
         &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
           &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -750,31 +688,16 @@
         { # A transformation of a field of the document.
           &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              { # A message that can hold any of the supported value types.
-                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;booleanValue&quot;: True or False, # A boolean value.
-                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                &quot;doubleValue&quot;: 3.14, # A double value.
-                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                },
-                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                &quot;mapValue&quot;: { # A map value. # A map value.
-                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                    &quot;a_key&quot;: # Object with schema name: Value
-                  },
-                },
-                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-              },
+              # Object with schema name: Value
             ],
           },
           &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
           &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -794,7 +717,11 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -814,7 +741,11 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -835,26 +766,7 @@
           },
           &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              { # A message that can hold any of the supported value types.
-                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;booleanValue&quot;: True or False, # A boolean value.
-                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                &quot;doubleValue&quot;: 3.14, # A double value.
-                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                },
-                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                &quot;mapValue&quot;: { # A map value. # A map value.
-                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                    &quot;a_key&quot;: # Object with schema name: Value
-                  },
-                },
-                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-              },
+              # Object with schema name: Value
             ],
           },
           &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -878,7 +790,11 @@
     { # The result of applying a write.
       &quot;transformResults&quot;: [ # The results of applying each DocumentTransform.FieldTransform, in the same order.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -918,7 +834,11 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
   &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
     &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-      &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+      &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;values&quot;: [ # Values in the array.
+          # Object with schema name: Value
+        ],
+      },
       &quot;booleanValue&quot;: True or False, # A boolean value.
       &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
       &quot;doubleValue&quot;: 3.14, # A double value.
@@ -956,7 +876,11 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
   &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
     &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-      &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+      &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;values&quot;: [ # Values in the array.
+          # Object with schema name: Value
+        ],
+      },
       &quot;booleanValue&quot;: True or False, # A boolean value.
       &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
       &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1022,7 +946,11 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
   &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
     &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-      &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+      &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;values&quot;: [ # Values in the array.
+          # Object with schema name: Value
+        ],
+      },
       &quot;booleanValue&quot;: True or False, # A boolean value.
       &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
       &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1075,7 +1003,11 @@
       &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
       &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
         &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1185,7 +1117,11 @@
           &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
           &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
             { # A message that can hold any of the supported value types.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1233,7 +1169,11 @@
           &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
           &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
             { # A message that can hold any of the supported value types.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1267,7 +1207,11 @@
             },
             &quot;op&quot;: &quot;A String&quot;, # The operator to filter by.
             &quot;value&quot;: { # A message that can hold any of the supported value types. # The value to compare to.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1320,7 +1264,11 @@
       &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
       &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
         &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1406,7 +1354,11 @@
       &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
       &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1454,7 +1406,11 @@
       &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
       &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1488,7 +1444,11 @@
         },
         &quot;op&quot;: &quot;A String&quot;, # The operator to filter by.
         &quot;value&quot;: { # A message that can hold any of the supported value types. # The value to compare to.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1533,7 +1493,11 @@
       &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
       &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1585,7 +1549,11 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
   &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
     &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-      &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+      &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;values&quot;: [ # Values in the array.
+          # Object with schema name: Value
+        ],
+      },
       &quot;booleanValue&quot;: True or False, # A boolean value.
       &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
       &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1625,7 +1593,11 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
   &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
     &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-      &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+      &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;values&quot;: [ # Values in the array.
+          # Object with schema name: Value
+        ],
+      },
       &quot;booleanValue&quot;: True or False, # A boolean value.
       &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
       &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1699,7 +1671,11 @@
       &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
       &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1747,7 +1723,11 @@
       &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
       &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1781,7 +1761,11 @@
         },
         &quot;op&quot;: &quot;A String&quot;, # The operator to filter by.
         &quot;value&quot;: { # A message that can hold any of the supported value types. # The value to compare to.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1825,7 +1809,11 @@
     &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
     &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
       &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-        &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;values&quot;: [ # Values in the array.
+            # Object with schema name: Value
+          ],
+        },
         &quot;booleanValue&quot;: True or False, # A boolean value.
         &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
         &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1882,31 +1870,16 @@
           { # A transformation of a field of the document.
             &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                { # A message that can hold any of the supported value types.
-                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                  &quot;booleanValue&quot;: True or False, # A boolean value.
-                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                  &quot;doubleValue&quot;: 3.14, # A double value.
-                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                  },
-                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                  &quot;mapValue&quot;: { # A map value. # A map value.
-                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                      &quot;a_key&quot;: # Object with schema name: Value
-                    },
-                  },
-                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-                },
+                # Object with schema name: Value
               ],
             },
             &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
             &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1926,7 +1899,11 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1946,7 +1923,11 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1967,26 +1948,7 @@
             },
             &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                { # A message that can hold any of the supported value types.
-                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                  &quot;booleanValue&quot;: True or False, # A boolean value.
-                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                  &quot;doubleValue&quot;: 3.14, # A double value.
-                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                  },
-                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                  &quot;mapValue&quot;: { # A map value. # A map value.
-                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                      &quot;a_key&quot;: # Object with schema name: Value
-                    },
-                  },
-                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-                },
+                # Object with schema name: Value
               ],
             },
             &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -1997,7 +1959,11 @@
         &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
         &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
           &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -2029,31 +1995,16 @@
         { # A transformation of a field of the document.
           &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              { # A message that can hold any of the supported value types.
-                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;booleanValue&quot;: True or False, # A boolean value.
-                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                &quot;doubleValue&quot;: 3.14, # A double value.
-                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                },
-                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                &quot;mapValue&quot;: { # A map value. # A map value.
-                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                    &quot;a_key&quot;: # Object with schema name: Value
-                  },
-                },
-                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-              },
+              # Object with schema name: Value
             ],
           },
           &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
           &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -2073,7 +2024,11 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -2093,7 +2048,11 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -2114,26 +2073,7 @@
           },
           &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              { # A message that can hold any of the supported value types.
-                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;booleanValue&quot;: True or False, # A boolean value.
-                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                &quot;doubleValue&quot;: 3.14, # A double value.
-                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                },
-                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                &quot;mapValue&quot;: { # A map value. # A map value.
-                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                    &quot;a_key&quot;: # Object with schema name: Value
-                  },
-                },
-                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-              },
+              # Object with schema name: Value
             ],
           },
           &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -2159,7 +2099,11 @@
     { # The result of applying a write.
       &quot;transformResults&quot;: [ # The results of applying each DocumentTransform.FieldTransform, in the same order.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
diff --git a/docs/dyn/gkehub_v1beta.projects.locations.global_.features.html b/docs/dyn/gkehub_v1beta.projects.locations.global_.features.html
index 5c61bea..41fbebf 100644
--- a/docs/dyn/gkehub_v1beta.projects.locations.global_.features.html
+++ b/docs/dyn/gkehub_v1beta.projects.locations.global_.features.html
@@ -116,7 +116,7 @@
   &quot;labels&quot;: { # GCP labels for this Feature.
     &quot;a_key&quot;: &quot;A String&quot;,
   },
-  &quot;membershipSpecs&quot;: { # Optional. Membership-specific configuration for this Feature. If this Feature does not support any per-Membership configuration, this field may be unused. The keys indicate which Membership the configuration is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
+  &quot;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;: { # Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Config Management-specific spec.
         &quot;binauthz&quot;: { # Configuration for Binauthz # Binauthz conifguration for the cluster.
@@ -389,7 +389,7 @@
   &quot;labels&quot;: { # GCP labels for this Feature.
     &quot;a_key&quot;: &quot;A String&quot;,
   },
-  &quot;membershipSpecs&quot;: { # Optional. Membership-specific configuration for this Feature. If this Feature does not support any per-Membership configuration, this field may be unused. The keys indicate which Membership the configuration is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
+  &quot;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;: { # Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Config Management-specific spec.
         &quot;binauthz&quot;: { # Configuration for Binauthz # Binauthz conifguration for the cluster.
@@ -602,7 +602,7 @@
       &quot;labels&quot;: { # GCP labels for this Feature.
         &quot;a_key&quot;: &quot;A String&quot;,
       },
-      &quot;membershipSpecs&quot;: { # Optional. Membership-specific configuration for this Feature. If this Feature does not support any per-Membership configuration, this field may be unused. The keys indicate which Membership the configuration is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
+      &quot;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;: { # Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Config Management-specific spec.
             &quot;binauthz&quot;: { # Configuration for Binauthz # Binauthz conifguration for the cluster.
@@ -819,7 +819,7 @@
   &quot;labels&quot;: { # GCP labels for this Feature.
     &quot;a_key&quot;: &quot;A String&quot;,
   },
-  &quot;membershipSpecs&quot;: { # Optional. Membership-specific configuration for this Feature. If this Feature does not support any per-Membership configuration, this field may be unused. The keys indicate which Membership the configuration is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
+  &quot;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;: { # Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Config Management-specific spec.
         &quot;binauthz&quot;: { # Configuration for Binauthz # Binauthz conifguration for the cluster.
diff --git a/docs/dyn/redis_v1.projects.locations.html b/docs/dyn/redis_v1.projects.locations.html
index 78a365a..5287c0a 100644
--- a/docs/dyn/redis_v1.projects.locations.html
+++ b/docs/dyn/redis_v1.projects.locations.html
@@ -136,7 +136,7 @@
 Args:
   name: string, The resource that owns the locations collection, if applicable. (required)
   filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
-  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageSize: integer, The maximum number of results to return. If not set, the service selects a default.
   pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
diff --git a/docs/dyn/redis_v1beta1.projects.locations.html b/docs/dyn/redis_v1beta1.projects.locations.html
index 830c167..36109f9 100644
--- a/docs/dyn/redis_v1beta1.projects.locations.html
+++ b/docs/dyn/redis_v1beta1.projects.locations.html
@@ -136,7 +136,7 @@
 Args:
   name: string, The resource that owns the locations collection, if applicable. (required)
   filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
-  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageSize: integer, The maximum number of results to return. If not set, the service selects a default.
   pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
diff --git a/docs/dyn/servicemanagement_v1.services.configs.html b/docs/dyn/servicemanagement_v1.services.configs.html
index 1a4ae4a..7c9ef29 100644
--- a/docs/dyn/servicemanagement_v1.services.configs.html
+++ b/docs/dyn/servicemanagement_v1.services.configs.html
@@ -150,7 +150,7 @@
       &quot;version&quot;: &quot;A String&quot;, # A version string for this interface. If specified, must have the form `major-version.minor-version`, as in `1.10`. If the minor version is omitted, it defaults to zero. If the entire version field is empty, the major version is derived from the package name, as outlined below. If the field is not empty, the version in the package name will be verified to be consistent with what is provided here. The versioning schema uses [semantic versioning](http://semver.org) where the major version number indicates a breaking change and the minor version an additive, non-breaking change. Both version numbers are signals to users what to expect from different versions, and should be carefully chosen based on the product plan. The major version is also reflected in the package name of the interface, which must end in `v`, as in `google.feature.v1`. For major versions 0 and 1, the suffix can be omitted. Zero major versions must only be used for experimental, non-GA interfaces.
     },
   ],
-  &quot;authentication&quot;: { # `Authentication` defines the authentication configuration for an API. Example for an API targeted for external use: name: calendar.googleapis.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: &quot;*&quot; requirements: provider_id: google_calendar_auth # Auth configuration.
+  &quot;authentication&quot;: { # `Authentication` defines the authentication configuration for API methods provided by an API service. Example: name: calendar.googleapis.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: &quot;*&quot; requirements: provider_id: google_calendar_auth - selector: google.calendar.Delegate oauth: canonical_scopes: https://www.googleapis.com/auth/calendar.read # Auth configuration.
     &quot;providers&quot;: [ # Defines a set of authentication providers that a service supports.
       { # Configuration for an authentication provider, including support for [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
         &quot;audiences&quot;: &quot;A String&quot;, # The list of JWT [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). that are allowed to access. A JWT containing any of these audiences will be accepted. When this setting is absent, JWTs with audiences: - &quot;https://[service.name]/[google.protobuf.Api.name]&quot; - &quot;https://[service.name]/&quot; will be accepted. For example, if no audiences are in the setting, LibraryService API will accept JWTs with the following audiences: - https://library-example.googleapis.com/google.example.library.v1.LibraryService - https://library-example.googleapis.com/ Example: audiences: bookstore_android.apps.googleusercontent.com, bookstore_web.apps.googleusercontent.com
@@ -616,7 +616,7 @@
       &quot;version&quot;: &quot;A String&quot;, # A version string for this interface. If specified, must have the form `major-version.minor-version`, as in `1.10`. If the minor version is omitted, it defaults to zero. If the entire version field is empty, the major version is derived from the package name, as outlined below. If the field is not empty, the version in the package name will be verified to be consistent with what is provided here. The versioning schema uses [semantic versioning](http://semver.org) where the major version number indicates a breaking change and the minor version an additive, non-breaking change. Both version numbers are signals to users what to expect from different versions, and should be carefully chosen based on the product plan. The major version is also reflected in the package name of the interface, which must end in `v`, as in `google.feature.v1`. For major versions 0 and 1, the suffix can be omitted. Zero major versions must only be used for experimental, non-GA interfaces.
     },
   ],
-  &quot;authentication&quot;: { # `Authentication` defines the authentication configuration for an API. Example for an API targeted for external use: name: calendar.googleapis.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: &quot;*&quot; requirements: provider_id: google_calendar_auth # Auth configuration.
+  &quot;authentication&quot;: { # `Authentication` defines the authentication configuration for API methods provided by an API service. Example: name: calendar.googleapis.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: &quot;*&quot; requirements: provider_id: google_calendar_auth - selector: google.calendar.Delegate oauth: canonical_scopes: https://www.googleapis.com/auth/calendar.read # Auth configuration.
     &quot;providers&quot;: [ # Defines a set of authentication providers that a service supports.
       { # Configuration for an authentication provider, including support for [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
         &quot;audiences&quot;: &quot;A String&quot;, # The list of JWT [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). that are allowed to access. A JWT containing any of these audiences will be accepted. When this setting is absent, JWTs with audiences: - &quot;https://[service.name]/[google.protobuf.Api.name]&quot; - &quot;https://[service.name]/&quot; will be accepted. For example, if no audiences are in the setting, LibraryService API will accept JWTs with the following audiences: - https://library-example.googleapis.com/google.example.library.v1.LibraryService - https://library-example.googleapis.com/ Example: audiences: bookstore_android.apps.googleusercontent.com, bookstore_web.apps.googleusercontent.com
@@ -1094,7 +1094,7 @@
       &quot;version&quot;: &quot;A String&quot;, # A version string for this interface. If specified, must have the form `major-version.minor-version`, as in `1.10`. If the minor version is omitted, it defaults to zero. If the entire version field is empty, the major version is derived from the package name, as outlined below. If the field is not empty, the version in the package name will be verified to be consistent with what is provided here. The versioning schema uses [semantic versioning](http://semver.org) where the major version number indicates a breaking change and the minor version an additive, non-breaking change. Both version numbers are signals to users what to expect from different versions, and should be carefully chosen based on the product plan. The major version is also reflected in the package name of the interface, which must end in `v`, as in `google.feature.v1`. For major versions 0 and 1, the suffix can be omitted. Zero major versions must only be used for experimental, non-GA interfaces.
     },
   ],
-  &quot;authentication&quot;: { # `Authentication` defines the authentication configuration for an API. Example for an API targeted for external use: name: calendar.googleapis.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: &quot;*&quot; requirements: provider_id: google_calendar_auth # Auth configuration.
+  &quot;authentication&quot;: { # `Authentication` defines the authentication configuration for API methods provided by an API service. Example: name: calendar.googleapis.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: &quot;*&quot; requirements: provider_id: google_calendar_auth - selector: google.calendar.Delegate oauth: canonical_scopes: https://www.googleapis.com/auth/calendar.read # Auth configuration.
     &quot;providers&quot;: [ # Defines a set of authentication providers that a service supports.
       { # Configuration for an authentication provider, including support for [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
         &quot;audiences&quot;: &quot;A String&quot;, # The list of JWT [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). that are allowed to access. A JWT containing any of these audiences will be accepted. When this setting is absent, JWTs with audiences: - &quot;https://[service.name]/[google.protobuf.Api.name]&quot; - &quot;https://[service.name]/&quot; will be accepted. For example, if no audiences are in the setting, LibraryService API will accept JWTs with the following audiences: - https://library-example.googleapis.com/google.example.library.v1.LibraryService - https://library-example.googleapis.com/ Example: audiences: bookstore_android.apps.googleusercontent.com, bookstore_web.apps.googleusercontent.com
@@ -1572,7 +1572,7 @@
           &quot;version&quot;: &quot;A String&quot;, # A version string for this interface. If specified, must have the form `major-version.minor-version`, as in `1.10`. If the minor version is omitted, it defaults to zero. If the entire version field is empty, the major version is derived from the package name, as outlined below. If the field is not empty, the version in the package name will be verified to be consistent with what is provided here. The versioning schema uses [semantic versioning](http://semver.org) where the major version number indicates a breaking change and the minor version an additive, non-breaking change. Both version numbers are signals to users what to expect from different versions, and should be carefully chosen based on the product plan. The major version is also reflected in the package name of the interface, which must end in `v`, as in `google.feature.v1`. For major versions 0 and 1, the suffix can be omitted. Zero major versions must only be used for experimental, non-GA interfaces.
         },
       ],
-      &quot;authentication&quot;: { # `Authentication` defines the authentication configuration for an API. Example for an API targeted for external use: name: calendar.googleapis.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: &quot;*&quot; requirements: provider_id: google_calendar_auth # Auth configuration.
+      &quot;authentication&quot;: { # `Authentication` defines the authentication configuration for API methods provided by an API service. Example: name: calendar.googleapis.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: &quot;*&quot; requirements: provider_id: google_calendar_auth - selector: google.calendar.Delegate oauth: canonical_scopes: https://www.googleapis.com/auth/calendar.read # Auth configuration.
         &quot;providers&quot;: [ # Defines a set of authentication providers that a service supports.
           { # Configuration for an authentication provider, including support for [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
             &quot;audiences&quot;: &quot;A String&quot;, # The list of JWT [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). that are allowed to access. A JWT containing any of these audiences will be accepted. When this setting is absent, JWTs with audiences: - &quot;https://[service.name]/[google.protobuf.Api.name]&quot; - &quot;https://[service.name]/&quot; will be accepted. For example, if no audiences are in the setting, LibraryService API will accept JWTs with the following audiences: - https://library-example.googleapis.com/google.example.library.v1.LibraryService - https://library-example.googleapis.com/ Example: audiences: bookstore_android.apps.googleusercontent.com, bookstore_web.apps.googleusercontent.com
diff --git a/docs/dyn/servicemanagement_v1.services.html b/docs/dyn/servicemanagement_v1.services.html
index f014997..cdc71fd 100644
--- a/docs/dyn/servicemanagement_v1.services.html
+++ b/docs/dyn/servicemanagement_v1.services.html
@@ -345,7 +345,7 @@
       &quot;version&quot;: &quot;A String&quot;, # A version string for this interface. If specified, must have the form `major-version.minor-version`, as in `1.10`. If the minor version is omitted, it defaults to zero. If the entire version field is empty, the major version is derived from the package name, as outlined below. If the field is not empty, the version in the package name will be verified to be consistent with what is provided here. The versioning schema uses [semantic versioning](http://semver.org) where the major version number indicates a breaking change and the minor version an additive, non-breaking change. Both version numbers are signals to users what to expect from different versions, and should be carefully chosen based on the product plan. The major version is also reflected in the package name of the interface, which must end in `v`, as in `google.feature.v1`. For major versions 0 and 1, the suffix can be omitted. Zero major versions must only be used for experimental, non-GA interfaces.
     },
   ],
-  &quot;authentication&quot;: { # `Authentication` defines the authentication configuration for an API. Example for an API targeted for external use: name: calendar.googleapis.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: &quot;*&quot; requirements: provider_id: google_calendar_auth # Auth configuration.
+  &quot;authentication&quot;: { # `Authentication` defines the authentication configuration for API methods provided by an API service. Example: name: calendar.googleapis.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: &quot;*&quot; requirements: provider_id: google_calendar_auth - selector: google.calendar.Delegate oauth: canonical_scopes: https://www.googleapis.com/auth/calendar.read # Auth configuration.
     &quot;providers&quot;: [ # Defines a set of authentication providers that a service supports.
       { # Configuration for an authentication provider, including support for [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
         &quot;audiences&quot;: &quot;A String&quot;, # The list of JWT [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). that are allowed to access. A JWT containing any of these audiences will be accepted. When this setting is absent, JWTs with audiences: - &quot;https://[service.name]/[google.protobuf.Api.name]&quot; - &quot;https://[service.name]/&quot; will be accepted. For example, if no audiences are in the setting, LibraryService API will accept JWTs with the following audiences: - https://library-example.googleapis.com/google.example.library.v1.LibraryService - https://library-example.googleapis.com/ Example: audiences: bookstore_android.apps.googleusercontent.com, bookstore_web.apps.googleusercontent.com
diff --git a/docs/dyn/sqladmin_v1beta4.instances.html b/docs/dyn/sqladmin_v1beta4.instances.html
index 76afdc3..6f2bbf8 100644
--- a/docs/dyn/sqladmin_v1beta4.instances.html
+++ b/docs/dyn/sqladmin_v1beta4.instances.html
@@ -798,6 +798,10 @@
     &quot;password&quot;: &quot;A String&quot;, # The password for connecting to on-premises instance.
     &quot;username&quot;: &quot;A String&quot;, # The username for connecting to on-premises instance.
   },
+  &quot;outOfDiskReport&quot;: { # This message wraps up the information written by out-of-disk detection job. # This field represents the report generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job
+    &quot;sqlMinRecommendedIncreaseSizeGb&quot;: 42, # The minimum recommended increase size in GigaBytes This field is consumed by the frontend Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend
+    &quot;sqlOutOfDiskState&quot;: &quot;A String&quot;, # This field represents the state generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job
+  },
   &quot;project&quot;: &quot;A String&quot;, # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
   &quot;region&quot;: &quot;A String&quot;, # The geographical region. Can be *us-central* (*FIRST_GEN* instances only) *us-central1* (*SECOND_GEN* instances only) *asia-east1* or *europe-west1*. Defaults to *us-central* or *us-central1* depending on the instance type. The region cannot be changed after instance creation.
   &quot;replicaConfiguration&quot;: { # Read-replica configuration for connecting to the primary instance. # Configuration specific to failover replicas and read replicas.
@@ -1095,6 +1099,10 @@
     &quot;password&quot;: &quot;A String&quot;, # The password for connecting to on-premises instance.
     &quot;username&quot;: &quot;A String&quot;, # The username for connecting to on-premises instance.
   },
+  &quot;outOfDiskReport&quot;: { # This message wraps up the information written by out-of-disk detection job. # This field represents the report generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job
+    &quot;sqlMinRecommendedIncreaseSizeGb&quot;: 42, # The minimum recommended increase size in GigaBytes This field is consumed by the frontend Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend
+    &quot;sqlOutOfDiskState&quot;: &quot;A String&quot;, # This field represents the state generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job
+  },
   &quot;project&quot;: &quot;A String&quot;, # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
   &quot;region&quot;: &quot;A String&quot;, # The geographical region. Can be *us-central* (*FIRST_GEN* instances only) *us-central1* (*SECOND_GEN* instances only) *asia-east1* or *europe-west1*. Defaults to *us-central* or *us-central1* depending on the instance type. The region cannot be changed after instance creation.
   &quot;replicaConfiguration&quot;: { # Read-replica configuration for connecting to the primary instance. # Configuration specific to failover replicas and read replicas.
@@ -1368,6 +1376,10 @@
         &quot;password&quot;: &quot;A String&quot;, # The password for connecting to on-premises instance.
         &quot;username&quot;: &quot;A String&quot;, # The username for connecting to on-premises instance.
       },
+      &quot;outOfDiskReport&quot;: { # This message wraps up the information written by out-of-disk detection job. # This field represents the report generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job
+        &quot;sqlMinRecommendedIncreaseSizeGb&quot;: 42, # The minimum recommended increase size in GigaBytes This field is consumed by the frontend Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend
+        &quot;sqlOutOfDiskState&quot;: &quot;A String&quot;, # This field represents the state generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job
+      },
       &quot;project&quot;: &quot;A String&quot;, # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
       &quot;region&quot;: &quot;A String&quot;, # The geographical region. Can be *us-central* (*FIRST_GEN* instances only) *us-central1* (*SECOND_GEN* instances only) *asia-east1* or *europe-west1*. Defaults to *us-central* or *us-central1* depending on the instance type. The region cannot be changed after instance creation.
       &quot;replicaConfiguration&quot;: { # Read-replica configuration for connecting to the primary instance. # Configuration specific to failover replicas and read replicas.
@@ -1613,6 +1625,10 @@
     &quot;password&quot;: &quot;A String&quot;, # The password for connecting to on-premises instance.
     &quot;username&quot;: &quot;A String&quot;, # The username for connecting to on-premises instance.
   },
+  &quot;outOfDiskReport&quot;: { # This message wraps up the information written by out-of-disk detection job. # This field represents the report generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job
+    &quot;sqlMinRecommendedIncreaseSizeGb&quot;: 42, # The minimum recommended increase size in GigaBytes This field is consumed by the frontend Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend
+    &quot;sqlOutOfDiskState&quot;: &quot;A String&quot;, # This field represents the state generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job
+  },
   &quot;project&quot;: &quot;A String&quot;, # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
   &quot;region&quot;: &quot;A String&quot;, # The geographical region. Can be *us-central* (*FIRST_GEN* instances only) *us-central1* (*SECOND_GEN* instances only) *asia-east1* or *europe-west1*. Defaults to *us-central* or *us-central1* depending on the instance type. The region cannot be changed after instance creation.
   &quot;replicaConfiguration&quot;: { # Read-replica configuration for connecting to the primary instance. # Configuration specific to failover replicas and read replicas.
@@ -2597,6 +2613,10 @@
     &quot;password&quot;: &quot;A String&quot;, # The password for connecting to on-premises instance.
     &quot;username&quot;: &quot;A String&quot;, # The username for connecting to on-premises instance.
   },
+  &quot;outOfDiskReport&quot;: { # This message wraps up the information written by out-of-disk detection job. # This field represents the report generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job
+    &quot;sqlMinRecommendedIncreaseSizeGb&quot;: 42, # The minimum recommended increase size in GigaBytes This field is consumed by the frontend Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend
+    &quot;sqlOutOfDiskState&quot;: &quot;A String&quot;, # This field represents the state generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job
+  },
   &quot;project&quot;: &quot;A String&quot;, # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
   &quot;region&quot;: &quot;A String&quot;, # The geographical region. Can be *us-central* (*FIRST_GEN* instances only) *us-central1* (*SECOND_GEN* instances only) *asia-east1* or *europe-west1*. Defaults to *us-central* or *us-central1* depending on the instance type. The region cannot be changed after instance creation.
   &quot;replicaConfiguration&quot;: { # Read-replica configuration for connecting to the primary instance. # Configuration specific to failover replicas and read replicas.
diff --git a/googleapiclient/discovery_cache/documents/accesscontextmanager.v1.json b/googleapiclient/discovery_cache/documents/accesscontextmanager.v1.json
index 7988e99..45e75f0 100644
--- a/googleapiclient/discovery_cache/documents/accesscontextmanager.v1.json
+++ b/googleapiclient/discovery_cache/documents/accesscontextmanager.v1.json
@@ -943,7 +943,7 @@
       }
     }
   },
-  "revision": "20210412",
+  "revision": "20210417",
   "rootUrl": "https://accesscontextmanager.googleapis.com/",
   "schemas": {
     "AccessLevel": {
diff --git a/googleapiclient/discovery_cache/documents/accesscontextmanager.v1beta.json b/googleapiclient/discovery_cache/documents/accesscontextmanager.v1beta.json
index 571e579..66fd0c3 100644
--- a/googleapiclient/discovery_cache/documents/accesscontextmanager.v1beta.json
+++ b/googleapiclient/discovery_cache/documents/accesscontextmanager.v1beta.json
@@ -609,7 +609,7 @@
       }
     }
   },
-  "revision": "20210412",
+  "revision": "20210417",
   "rootUrl": "https://accesscontextmanager.googleapis.com/",
   "schemas": {
     "AccessLevel": {
diff --git a/googleapiclient/discovery_cache/documents/apigateway.v1.json b/googleapiclient/discovery_cache/documents/apigateway.v1.json
index 6b28e0c..32c88b5 100644
--- a/googleapiclient/discovery_cache/documents/apigateway.v1.json
+++ b/googleapiclient/discovery_cache/documents/apigateway.v1.json
@@ -1083,7 +1083,7 @@
       }
     }
   },
-  "revision": "20210408",
+  "revision": "20210420",
   "rootUrl": "https://apigateway.googleapis.com/",
   "schemas": {
     "ApigatewayApi": {
diff --git a/googleapiclient/discovery_cache/documents/area120tables.v1alpha1.json b/googleapiclient/discovery_cache/documents/area120tables.v1alpha1.json
index cfe8d50..6ccd92f 100644
--- a/googleapiclient/discovery_cache/documents/area120tables.v1alpha1.json
+++ b/googleapiclient/discovery_cache/documents/area120tables.v1alpha1.json
@@ -586,7 +586,7 @@
       }
     }
   },
-  "revision": "20210421",
+  "revision": "20210422",
   "rootUrl": "https://area120tables.googleapis.com/",
   "schemas": {
     "BatchCreateRowsRequest": {
diff --git a/googleapiclient/discovery_cache/documents/bigquery.v2.json b/googleapiclient/discovery_cache/documents/bigquery.v2.json
index 2181b1a..66c2c1c 100644
--- a/googleapiclient/discovery_cache/documents/bigquery.v2.json
+++ b/googleapiclient/discovery_cache/documents/bigquery.v2.json
@@ -1683,7 +1683,7 @@
       }
     }
   },
-  "revision": "20210410",
+  "revision": "20210416",
   "rootUrl": "https://bigquery.googleapis.com/",
   "schemas": {
     "AggregateClassificationMetrics": {
diff --git a/googleapiclient/discovery_cache/documents/bigqueryconnection.v1beta1.json b/googleapiclient/discovery_cache/documents/bigqueryconnection.v1beta1.json
index d995c51..f2c7f37 100644
--- a/googleapiclient/discovery_cache/documents/bigqueryconnection.v1beta1.json
+++ b/googleapiclient/discovery_cache/documents/bigqueryconnection.v1beta1.json
@@ -395,7 +395,7 @@
       }
     }
   },
-  "revision": "20210410",
+  "revision": "20210416",
   "rootUrl": "https://bigqueryconnection.googleapis.com/",
   "schemas": {
     "AuditConfig": {
diff --git a/googleapiclient/discovery_cache/documents/chromemanagement.v1.json b/googleapiclient/discovery_cache/documents/chromemanagement.v1.json
index 39f8184..7b675cb 100644
--- a/googleapiclient/discovery_cache/documents/chromemanagement.v1.json
+++ b/googleapiclient/discovery_cache/documents/chromemanagement.v1.json
@@ -288,7 +288,7 @@
       }
     }
   },
-  "revision": "20210416",
+  "revision": "20210422",
   "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 8cc681a..87bc823 100644
--- a/googleapiclient/discovery_cache/documents/chromepolicy.v1.json
+++ b/googleapiclient/discovery_cache/documents/chromepolicy.v1.json
@@ -280,7 +280,7 @@
       }
     }
   },
-  "revision": "20210421",
+  "revision": "20210422",
   "rootUrl": "https://chromepolicy.googleapis.com/",
   "schemas": {
     "GoogleChromePolicyV1AdditionalTargetKeyName": {
diff --git a/googleapiclient/discovery_cache/documents/chromeuxreport.v1.json b/googleapiclient/discovery_cache/documents/chromeuxreport.v1.json
index 2caaee8..bbebcb1 100644
--- a/googleapiclient/discovery_cache/documents/chromeuxreport.v1.json
+++ b/googleapiclient/discovery_cache/documents/chromeuxreport.v1.json
@@ -116,7 +116,7 @@
       }
     }
   },
-  "revision": "20210421",
+  "revision": "20210422",
   "rootUrl": "https://chromeuxreport.googleapis.com/",
   "schemas": {
     "Bin": {
diff --git a/googleapiclient/discovery_cache/documents/clouddebugger.v2.json b/googleapiclient/discovery_cache/documents/clouddebugger.v2.json
index 0474711..2ce713e 100644
--- a/googleapiclient/discovery_cache/documents/clouddebugger.v2.json
+++ b/googleapiclient/discovery_cache/documents/clouddebugger.v2.json
@@ -448,7 +448,7 @@
       }
     }
   },
-  "revision": "20210410",
+  "revision": "20210416",
   "rootUrl": "https://clouddebugger.googleapis.com/",
   "schemas": {
     "AliasContext": {
diff --git a/googleapiclient/discovery_cache/documents/cloudscheduler.v1.json b/googleapiclient/discovery_cache/documents/cloudscheduler.v1.json
index 83ff890..31e07eb 100644
--- a/googleapiclient/discovery_cache/documents/cloudscheduler.v1.json
+++ b/googleapiclient/discovery_cache/documents/cloudscheduler.v1.json
@@ -3,7 +3,7 @@
     "oauth2": {
       "scopes": {
         "https://www.googleapis.com/auth/cloud-platform": {
-          "description": "View and manage your data across Google Cloud Platform services"
+          "description": "See, edit, configure, and delete your Google Cloud Platform data"
         }
       }
     }
@@ -156,7 +156,7 @@
                   "type": "string"
                 },
                 "pageSize": {
-                  "description": "The maximum number of results to return. If not set, the service will select a default.",
+                  "description": "The maximum number of results to return. If not set, the service selects a default.",
                   "format": "int32",
                   "location": "query",
                   "type": "integer"
@@ -418,7 +418,7 @@
       }
     }
   },
-  "revision": "20210315",
+  "revision": "20210420",
   "rootUrl": "https://cloudscheduler.googleapis.com/",
   "schemas": {
     "AppEngineHttpTarget": {
diff --git a/googleapiclient/discovery_cache/documents/cloudscheduler.v1beta1.json b/googleapiclient/discovery_cache/documents/cloudscheduler.v1beta1.json
index aa7f833..23cf827 100644
--- a/googleapiclient/discovery_cache/documents/cloudscheduler.v1beta1.json
+++ b/googleapiclient/discovery_cache/documents/cloudscheduler.v1beta1.json
@@ -3,7 +3,7 @@
     "oauth2": {
       "scopes": {
         "https://www.googleapis.com/auth/cloud-platform": {
-          "description": "View and manage your data across Google Cloud Platform services"
+          "description": "See, edit, configure, and delete your Google Cloud Platform data"
         }
       }
     }
@@ -156,7 +156,7 @@
                   "type": "string"
                 },
                 "pageSize": {
-                  "description": "The maximum number of results to return. If not set, the service will select a default.",
+                  "description": "The maximum number of results to return. If not set, the service selects a default.",
                   "format": "int32",
                   "location": "query",
                   "type": "integer"
@@ -428,7 +428,7 @@
       }
     }
   },
-  "revision": "20210315",
+  "revision": "20210420",
   "rootUrl": "https://cloudscheduler.googleapis.com/",
   "schemas": {
     "AppEngineHttpTarget": {
diff --git a/googleapiclient/discovery_cache/documents/container.v1.json b/googleapiclient/discovery_cache/documents/container.v1.json
index d87e463..5883cc6 100644
--- a/googleapiclient/discovery_cache/documents/container.v1.json
+++ b/googleapiclient/discovery_cache/documents/container.v1.json
@@ -2459,7 +2459,7 @@
       }
     }
   },
-  "revision": "20210406",
+  "revision": "20210413",
   "rootUrl": "https://container.googleapis.com/",
   "schemas": {
     "AcceleratorConfig": {
diff --git a/googleapiclient/discovery_cache/documents/customsearch.v1.json b/googleapiclient/discovery_cache/documents/customsearch.v1.json
index 5ad29bf..1b3ebb2 100644
--- a/googleapiclient/discovery_cache/documents/customsearch.v1.json
+++ b/googleapiclient/discovery_cache/documents/customsearch.v1.json
@@ -674,7 +674,7 @@
       }
     }
   },
-  "revision": "20210421",
+  "revision": "20210422",
   "rootUrl": "https://customsearch.googleapis.com/",
   "schemas": {
     "Promotion": {
diff --git a/googleapiclient/discovery_cache/documents/datalabeling.v1beta1.json b/googleapiclient/discovery_cache/documents/datalabeling.v1beta1.json
index b995978..7b47e43 100644
--- a/googleapiclient/discovery_cache/documents/datalabeling.v1beta1.json
+++ b/googleapiclient/discovery_cache/documents/datalabeling.v1beta1.json
@@ -1596,7 +1596,7 @@
       }
     }
   },
-  "revision": "20210419",
+  "revision": "20210420",
   "rootUrl": "https://datalabeling.googleapis.com/",
   "schemas": {
     "GoogleCloudDatalabelingV1alpha1CreateInstructionMetadata": {
diff --git a/googleapiclient/discovery_cache/documents/datamigration.v1.json b/googleapiclient/discovery_cache/documents/datamigration.v1.json
index 1c93ef0..100e13c 100644
--- a/googleapiclient/discovery_cache/documents/datamigration.v1.json
+++ b/googleapiclient/discovery_cache/documents/datamigration.v1.json
@@ -156,7 +156,7 @@
                   "type": "string"
                 },
                 "pageSize": {
-                  "description": "The maximum number of results to return. If not set, the service will select a default.",
+                  "description": "The maximum number of results to return. If not set, the service selects a default.",
                   "format": "int32",
                   "location": "query",
                   "type": "integer"
@@ -1049,7 +1049,7 @@
       }
     }
   },
-  "revision": "20210407",
+  "revision": "20210413",
   "rootUrl": "https://datamigration.googleapis.com/",
   "schemas": {
     "AuditConfig": {
diff --git a/googleapiclient/discovery_cache/documents/datamigration.v1beta1.json b/googleapiclient/discovery_cache/documents/datamigration.v1beta1.json
index 2a8e5bd..e54f8a2 100644
--- a/googleapiclient/discovery_cache/documents/datamigration.v1beta1.json
+++ b/googleapiclient/discovery_cache/documents/datamigration.v1beta1.json
@@ -156,7 +156,7 @@
                   "type": "string"
                 },
                 "pageSize": {
-                  "description": "The maximum number of results to return. If not set, the service will select a default.",
+                  "description": "The maximum number of results to return. If not set, the service selects a default.",
                   "format": "int32",
                   "location": "query",
                   "type": "integer"
@@ -1049,7 +1049,7 @@
       }
     }
   },
-  "revision": "20210407",
+  "revision": "20210413",
   "rootUrl": "https://datamigration.googleapis.com/",
   "schemas": {
     "AuditConfig": {
diff --git a/googleapiclient/discovery_cache/documents/essentialcontacts.v1.json b/googleapiclient/discovery_cache/documents/essentialcontacts.v1.json
index b704565..e1d9b15 100644
--- a/googleapiclient/discovery_cache/documents/essentialcontacts.v1.json
+++ b/googleapiclient/discovery_cache/documents/essentialcontacts.v1.json
@@ -850,7 +850,7 @@
       }
     }
   },
-  "revision": "20210421",
+  "revision": "20210422",
   "rootUrl": "https://essentialcontacts.googleapis.com/",
   "schemas": {
     "GoogleCloudEssentialcontactsV1ComputeContactsResponse": {
diff --git a/googleapiclient/discovery_cache/documents/factchecktools.v1alpha1.json b/googleapiclient/discovery_cache/documents/factchecktools.v1alpha1.json
index 2b39005..30bb24a 100644
--- a/googleapiclient/discovery_cache/documents/factchecktools.v1alpha1.json
+++ b/googleapiclient/discovery_cache/documents/factchecktools.v1alpha1.json
@@ -304,7 +304,7 @@
       }
     }
   },
-  "revision": "20210421",
+  "revision": "20210422",
   "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 216eaf0..a5ebb69 100644
--- a/googleapiclient/discovery_cache/documents/firebase.v1beta1.json
+++ b/googleapiclient/discovery_cache/documents/firebase.v1beta1.json
@@ -1121,7 +1121,7 @@
       }
     }
   },
-  "revision": "20210421",
+  "revision": "20210422",
   "rootUrl": "https://firebase.googleapis.com/",
   "schemas": {
     "AddFirebaseRequest": {
diff --git a/googleapiclient/discovery_cache/documents/firebasedatabase.v1beta.json b/googleapiclient/discovery_cache/documents/firebasedatabase.v1beta.json
index c4927a9..c849257 100644
--- a/googleapiclient/discovery_cache/documents/firebasedatabase.v1beta.json
+++ b/googleapiclient/discovery_cache/documents/firebasedatabase.v1beta.json
@@ -317,7 +317,7 @@
       }
     }
   },
-  "revision": "20210421",
+  "revision": "20210422",
   "rootUrl": "https://firebasedatabase.googleapis.com/",
   "schemas": {
     "DatabaseInstance": {
diff --git a/googleapiclient/discovery_cache/documents/gkehub.v1alpha2.json b/googleapiclient/discovery_cache/documents/gkehub.v1alpha2.json
index 036732e..555d7e8 100644
--- a/googleapiclient/discovery_cache/documents/gkehub.v1alpha2.json
+++ b/googleapiclient/discovery_cache/documents/gkehub.v1alpha2.json
@@ -652,7 +652,7 @@
       }
     }
   },
-  "revision": "20210409",
+  "revision": "20210416",
   "rootUrl": "https://gkehub.googleapis.com/",
   "schemas": {
     "AuditConfig": {
diff --git a/googleapiclient/discovery_cache/documents/gkehub.v1beta.json b/googleapiclient/discovery_cache/documents/gkehub.v1beta.json
index b62debc..e80f4cc 100644
--- a/googleapiclient/discovery_cache/documents/gkehub.v1beta.json
+++ b/googleapiclient/discovery_cache/documents/gkehub.v1beta.json
@@ -678,7 +678,7 @@
       }
     }
   },
-  "revision": "20210409",
+  "revision": "20210416",
   "rootUrl": "https://gkehub.googleapis.com/",
   "schemas": {
     "AuditConfig": {
@@ -1511,7 +1511,7 @@
           "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 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.",
+          "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": {
diff --git a/googleapiclient/discovery_cache/documents/gkehub.v1beta1.json b/googleapiclient/discovery_cache/documents/gkehub.v1beta1.json
index 1273862..5b2a831 100644
--- a/googleapiclient/discovery_cache/documents/gkehub.v1beta1.json
+++ b/googleapiclient/discovery_cache/documents/gkehub.v1beta1.json
@@ -706,7 +706,7 @@
       }
     }
   },
-  "revision": "20210409",
+  "revision": "20210416",
   "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 7b43fe3..73d95c1 100644
--- a/googleapiclient/discovery_cache/documents/gmailpostmastertools.v1.json
+++ b/googleapiclient/discovery_cache/documents/gmailpostmastertools.v1.json
@@ -265,7 +265,7 @@
       }
     }
   },
-  "revision": "20210421",
+  "revision": "20210422",
   "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 46f446e..a8a3c18 100644
--- a/googleapiclient/discovery_cache/documents/gmailpostmastertools.v1beta1.json
+++ b/googleapiclient/discovery_cache/documents/gmailpostmastertools.v1beta1.json
@@ -265,7 +265,7 @@
       }
     }
   },
-  "revision": "20210421",
+  "revision": "20210422",
   "rootUrl": "https://gmailpostmastertools.googleapis.com/",
   "schemas": {
     "DeliveryError": {
diff --git a/googleapiclient/discovery_cache/documents/libraryagent.v1.json b/googleapiclient/discovery_cache/documents/libraryagent.v1.json
index e9630c8..42c1342 100644
--- a/googleapiclient/discovery_cache/documents/libraryagent.v1.json
+++ b/googleapiclient/discovery_cache/documents/libraryagent.v1.json
@@ -279,7 +279,7 @@
       }
     }
   },
-  "revision": "20210421",
+  "revision": "20210422",
   "rootUrl": "https://libraryagent.googleapis.com/",
   "schemas": {
     "GoogleExampleLibraryagentV1Book": {
diff --git a/googleapiclient/discovery_cache/documents/lifesciences.v2beta.json b/googleapiclient/discovery_cache/documents/lifesciences.v2beta.json
index 43f3f29..62e0fbb 100644
--- a/googleapiclient/discovery_cache/documents/lifesciences.v2beta.json
+++ b/googleapiclient/discovery_cache/documents/lifesciences.v2beta.json
@@ -312,7 +312,7 @@
       }
     }
   },
-  "revision": "20210410",
+  "revision": "20210417",
   "rootUrl": "https://lifesciences.googleapis.com/",
   "schemas": {
     "Accelerator": {
@@ -649,7 +649,7 @@
             "The caller does not have permission to execute the specified operation. `PERMISSION_DENIED` must not be used for rejections caused by exhausting some resource (use `RESOURCE_EXHAUSTED` instead for those errors). `PERMISSION_DENIED` must not be used if the caller can not be identified (use `UNAUTHENTICATED` instead for those errors). This error code does not imply the request is valid or the requested entity exists or satisfies other pre-conditions. HTTP Mapping: 403 Forbidden",
             "The request does not have valid authentication credentials for the operation. HTTP Mapping: 401 Unauthorized",
             "Some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space. HTTP Mapping: 429 Too Many Requests",
-            "The operation was rejected because the system is not in a state required for the operation's execution. For example, the directory to be deleted is non-empty, an rmdir operation is applied to a non-directory, etc. Service implementors can use the following guidelines to decide between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`: (a) Use `UNAVAILABLE` if the client can retry just the failing call. (b) Use `ABORTED` if the client should retry at a higher level (e.g., when a client-specified test-and-set fails, indicating the client should restart a read-modify-write sequence). (c) Use `FAILED_PRECONDITION` if the client should not retry until the system state has been explicitly fixed. E.g., if an \"rmdir\" fails because the directory is non-empty, `FAILED_PRECONDITION` should be returned since the client should not retry unless the files are deleted from the directory. HTTP Mapping: 400 Bad Request",
+            "The operation was rejected because the system is not in a state required for the operation's execution. For example, the directory to be deleted is non-empty, an rmdir operation is applied to a non-directory, etc. Service implementors can use the following guidelines to decide between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`: (a) Use `UNAVAILABLE` if the client can retry just the failing call. (b) Use `ABORTED` if the client should retry at a higher level. For example, when a client-specified test-and-set fails, indicating the client should restart a read-modify-write sequence. (c) Use `FAILED_PRECONDITION` if the client should not retry until the system state has been explicitly fixed. For example, if an \"rmdir\" fails because the directory is non-empty, `FAILED_PRECONDITION` should be returned since the client should not retry unless the files are deleted from the directory. HTTP Mapping: 400 Bad Request",
             "The operation was aborted, typically due to a concurrency issue such as a sequencer check failure or transaction abort. See the guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 409 Conflict",
             "The operation was attempted past the valid range. E.g., seeking or reading past end-of-file. Unlike `INVALID_ARGUMENT`, this error indicates a problem that may be fixed if the system state changes. For example, a 32-bit file system will generate `INVALID_ARGUMENT` if asked to read at an offset that is not in the range [0,2^32-1], but it will generate `OUT_OF_RANGE` if asked to read from an offset past the current file size. There is a fair bit of overlap between `FAILED_PRECONDITION` and `OUT_OF_RANGE`. We recommend using `OUT_OF_RANGE` (the more specific error) when it applies so that callers who are iterating through a space can easily look for an `OUT_OF_RANGE` error to detect when they are done. HTTP Mapping: 400 Bad Request",
             "The operation is not implemented or is not supported/enabled in this service. HTTP Mapping: 501 Not Implemented",
diff --git a/googleapiclient/discovery_cache/documents/localservices.v1.json b/googleapiclient/discovery_cache/documents/localservices.v1.json
index 236b889..46ce1bc 100644
--- a/googleapiclient/discovery_cache/documents/localservices.v1.json
+++ b/googleapiclient/discovery_cache/documents/localservices.v1.json
@@ -250,7 +250,7 @@
       }
     }
   },
-  "revision": "20210421",
+  "revision": "20210422",
   "rootUrl": "https://localservices.googleapis.com/",
   "schemas": {
     "GoogleAdsHomeservicesLocalservicesV1AccountReport": {
diff --git a/googleapiclient/discovery_cache/documents/monitoring.v1.json b/googleapiclient/discovery_cache/documents/monitoring.v1.json
index 0680e7d..fb91d3d 100644
--- a/googleapiclient/discovery_cache/documents/monitoring.v1.json
+++ b/googleapiclient/discovery_cache/documents/monitoring.v1.json
@@ -275,7 +275,7 @@
       }
     }
   },
-  "revision": "20210414",
+  "revision": "20210417",
   "rootUrl": "https://monitoring.googleapis.com/",
   "schemas": {
     "Aggregation": {
diff --git a/googleapiclient/discovery_cache/documents/monitoring.v3.json b/googleapiclient/discovery_cache/documents/monitoring.v3.json
index c4b53f4..36e2e5b 100644
--- a/googleapiclient/discovery_cache/documents/monitoring.v3.json
+++ b/googleapiclient/discovery_cache/documents/monitoring.v3.json
@@ -2541,7 +2541,7 @@
       }
     }
   },
-  "revision": "20210414",
+  "revision": "20210417",
   "rootUrl": "https://monitoring.googleapis.com/",
   "schemas": {
     "Aggregation": {
diff --git a/googleapiclient/discovery_cache/documents/networkmanagement.v1.json b/googleapiclient/discovery_cache/documents/networkmanagement.v1.json
index 727cb9d..49fe1a6 100644
--- a/googleapiclient/discovery_cache/documents/networkmanagement.v1.json
+++ b/googleapiclient/discovery_cache/documents/networkmanagement.v1.json
@@ -591,7 +591,7 @@
       }
     }
   },
-  "revision": "20210408",
+  "revision": "20210415",
   "rootUrl": "https://networkmanagement.googleapis.com/",
   "schemas": {
     "AbortInfo": {
diff --git a/googleapiclient/discovery_cache/documents/orgpolicy.v2.json b/googleapiclient/discovery_cache/documents/orgpolicy.v2.json
index d6de307..2bb65af 100644
--- a/googleapiclient/discovery_cache/documents/orgpolicy.v2.json
+++ b/googleapiclient/discovery_cache/documents/orgpolicy.v2.json
@@ -751,7 +751,7 @@
       }
     }
   },
-  "revision": "20210421",
+  "revision": "20210422",
   "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 f965293..8e7eb78 100644
--- a/googleapiclient/discovery_cache/documents/pagespeedonline.v5.json
+++ b/googleapiclient/discovery_cache/documents/pagespeedonline.v5.json
@@ -193,7 +193,7 @@
       }
     }
   },
-  "revision": "20210421",
+  "revision": "20210422",
   "rootUrl": "https://pagespeedonline.googleapis.com/",
   "schemas": {
     "AuditRefs": {
diff --git a/googleapiclient/discovery_cache/documents/people.v1.json b/googleapiclient/discovery_cache/documents/people.v1.json
index e5ebf18..f26fe98 100644
--- a/googleapiclient/discovery_cache/documents/people.v1.json
+++ b/googleapiclient/discovery_cache/documents/people.v1.json
@@ -1154,7 +1154,7 @@
       }
     }
   },
-  "revision": "20210421",
+  "revision": "20210422",
   "rootUrl": "https://people.googleapis.com/",
   "schemas": {
     "Address": {
diff --git a/googleapiclient/discovery_cache/documents/playcustomapp.v1.json b/googleapiclient/discovery_cache/documents/playcustomapp.v1.json
index ecc9f22..54095da 100644
--- a/googleapiclient/discovery_cache/documents/playcustomapp.v1.json
+++ b/googleapiclient/discovery_cache/documents/playcustomapp.v1.json
@@ -158,7 +158,7 @@
       }
     }
   },
-  "revision": "20210421",
+  "revision": "20210422",
   "rootUrl": "https://playcustomapp.googleapis.com/",
   "schemas": {
     "CustomApp": {
diff --git a/googleapiclient/discovery_cache/documents/prod_tt_sasportal.v1alpha1.json b/googleapiclient/discovery_cache/documents/prod_tt_sasportal.v1alpha1.json
index 7ec01ad..fcc10f4 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": "20210421",
+  "revision": "20210422",
   "rootUrl": "https://prod-tt-sasportal.googleapis.com/",
   "schemas": {
     "SasPortalAssignment": {
diff --git a/googleapiclient/discovery_cache/documents/pubsublite.v1.json b/googleapiclient/discovery_cache/documents/pubsublite.v1.json
index 76daf64..cc68428 100644
--- a/googleapiclient/discovery_cache/documents/pubsublite.v1.json
+++ b/googleapiclient/discovery_cache/documents/pubsublite.v1.json
@@ -632,7 +632,7 @@
       }
     }
   },
-  "revision": "20210406",
+  "revision": "20210420",
   "rootUrl": "https://pubsublite.googleapis.com/",
   "schemas": {
     "Capacity": {
diff --git a/googleapiclient/discovery_cache/documents/redis.v1.json b/googleapiclient/discovery_cache/documents/redis.v1.json
index 7db1e77..beb274d 100644
--- a/googleapiclient/discovery_cache/documents/redis.v1.json
+++ b/googleapiclient/discovery_cache/documents/redis.v1.json
@@ -156,7 +156,7 @@
                   "type": "string"
                 },
                 "pageSize": {
-                  "description": "The maximum number of results to return. If not set, the service will select a default.",
+                  "description": "The maximum number of results to return. If not set, the service selects a default.",
                   "format": "int32",
                   "location": "query",
                   "type": "integer"
@@ -596,7 +596,7 @@
       }
     }
   },
-  "revision": "20210406",
+  "revision": "20210415",
   "rootUrl": "https://redis.googleapis.com/",
   "schemas": {
     "Empty": {
diff --git a/googleapiclient/discovery_cache/documents/redis.v1beta1.json b/googleapiclient/discovery_cache/documents/redis.v1beta1.json
index 9410bcf..66851f9 100644
--- a/googleapiclient/discovery_cache/documents/redis.v1beta1.json
+++ b/googleapiclient/discovery_cache/documents/redis.v1beta1.json
@@ -156,7 +156,7 @@
                   "type": "string"
                 },
                 "pageSize": {
-                  "description": "The maximum number of results to return. If not set, the service will select a default.",
+                  "description": "The maximum number of results to return. If not set, the service selects a default.",
                   "format": "int32",
                   "location": "query",
                   "type": "integer"
@@ -596,7 +596,7 @@
       }
     }
   },
-  "revision": "20210406",
+  "revision": "20210415",
   "rootUrl": "https://redis.googleapis.com/",
   "schemas": {
     "Empty": {
diff --git a/googleapiclient/discovery_cache/documents/safebrowsing.v4.json b/googleapiclient/discovery_cache/documents/safebrowsing.v4.json
index 1671e8e..f24e5b1 100644
--- a/googleapiclient/discovery_cache/documents/safebrowsing.v4.json
+++ b/googleapiclient/discovery_cache/documents/safebrowsing.v4.json
@@ -261,7 +261,7 @@
       }
     }
   },
-  "revision": "20210421",
+  "revision": "20210422",
   "rootUrl": "https://safebrowsing.googleapis.com/",
   "schemas": {
     "GoogleProtobufEmpty": {
diff --git a/googleapiclient/discovery_cache/documents/servicemanagement.v1.json b/googleapiclient/discovery_cache/documents/servicemanagement.v1.json
index 7126a19..c322047 100644
--- a/googleapiclient/discovery_cache/documents/servicemanagement.v1.json
+++ b/googleapiclient/discovery_cache/documents/servicemanagement.v1.json
@@ -829,7 +829,7 @@
       }
     }
   },
-  "revision": "20210409",
+  "revision": "20210416",
   "rootUrl": "https://servicemanagement.googleapis.com/",
   "schemas": {
     "Advice": {
@@ -993,7 +993,7 @@
       "type": "object"
     },
     "Authentication": {
-      "description": "`Authentication` defines the authentication configuration for an API. Example for an API targeted for external use: name: calendar.googleapis.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: \"*\" requirements: provider_id: google_calendar_auth",
+      "description": "`Authentication` defines the authentication configuration for API methods provided by an API service. Example: name: calendar.googleapis.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: \"*\" requirements: provider_id: google_calendar_auth - selector: google.calendar.Delegate oauth: canonical_scopes: https://www.googleapis.com/auth/calendar.read",
       "id": "Authentication",
       "properties": {
         "providers": {
diff --git a/googleapiclient/discovery_cache/documents/sqladmin.v1beta4.json b/googleapiclient/discovery_cache/documents/sqladmin.v1beta4.json
index d17d4f2..7ee6106 100644
--- a/googleapiclient/discovery_cache/documents/sqladmin.v1beta4.json
+++ b/googleapiclient/discovery_cache/documents/sqladmin.v1beta4.json
@@ -1834,7 +1834,7 @@
       }
     }
   },
-  "revision": "20210406",
+  "revision": "20210420",
   "rootUrl": "https://sqladmin.googleapis.com/",
   "schemas": {
     "AclEntry": {
@@ -2365,6 +2365,10 @@
           "$ref": "OnPremisesConfiguration",
           "description": "Configuration specific to on-premises instances."
         },
+        "outOfDiskReport": {
+          "$ref": "SqlOutOfDiskReport",
+          "description": "This field represents the report generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job"
+        },
         "project": {
           "description": "The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.",
           "type": "string"
@@ -3869,6 +3873,32 @@
       },
       "type": "object"
     },
+    "SqlOutOfDiskReport": {
+      "description": "This message wraps up the information written by out-of-disk detection job.",
+      "id": "SqlOutOfDiskReport",
+      "properties": {
+        "sqlMinRecommendedIncreaseSizeGb": {
+          "description": "The minimum recommended increase size in GigaBytes This field is consumed by the frontend Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend",
+          "format": "int32",
+          "type": "integer"
+        },
+        "sqlOutOfDiskState": {
+          "description": "This field represents the state generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job",
+          "enum": [
+            "SQL_OUT_OF_DISK_STATE_UNSPECIFIED",
+            "NORMAL",
+            "SOFT_SHUTDOWN"
+          ],
+          "enumDescriptions": [
+            "Unspecified state",
+            "The instance has plenty space on data disk",
+            "Data disk is almost used up. It is shutdown to prevent data corruption."
+          ],
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "SqlScheduledMaintenance": {
       "description": "Any scheduled maintenancce for this instance.",
       "id": "SqlScheduledMaintenance",
diff --git a/googleapiclient/discovery_cache/documents/streetviewpublish.v1.json b/googleapiclient/discovery_cache/documents/streetviewpublish.v1.json
index 81e37ff..52fccfc 100644
--- a/googleapiclient/discovery_cache/documents/streetviewpublish.v1.json
+++ b/googleapiclient/discovery_cache/documents/streetviewpublish.v1.json
@@ -375,7 +375,7 @@
       }
     }
   },
-  "revision": "20210421",
+  "revision": "20210422",
   "rootUrl": "https://streetviewpublish.googleapis.com/",
   "schemas": {
     "BatchDeletePhotosRequest": {
diff --git a/googleapiclient/discovery_cache/documents/tpu.v1.json b/googleapiclient/discovery_cache/documents/tpu.v1.json
index e88c865..19242dc 100644
--- a/googleapiclient/discovery_cache/documents/tpu.v1.json
+++ b/googleapiclient/discovery_cache/documents/tpu.v1.json
@@ -659,7 +659,7 @@
       }
     }
   },
-  "revision": "20210414",
+  "revision": "20210419",
   "rootUrl": "https://tpu.googleapis.com/",
   "schemas": {
     "AcceleratorType": {
diff --git a/googleapiclient/discovery_cache/documents/tpu.v1alpha1.json b/googleapiclient/discovery_cache/documents/tpu.v1alpha1.json
index bfe8f41..5d0abbe 100644
--- a/googleapiclient/discovery_cache/documents/tpu.v1alpha1.json
+++ b/googleapiclient/discovery_cache/documents/tpu.v1alpha1.json
@@ -659,7 +659,7 @@
       }
     }
   },
-  "revision": "20210414",
+  "revision": "20210419",
   "rootUrl": "https://tpu.googleapis.com/",
   "schemas": {
     "AcceleratorType": {
diff --git a/googleapiclient/discovery_cache/documents/trafficdirector.v2.json b/googleapiclient/discovery_cache/documents/trafficdirector.v2.json
index ced0290..fc8b5a5 100644
--- a/googleapiclient/discovery_cache/documents/trafficdirector.v2.json
+++ b/googleapiclient/discovery_cache/documents/trafficdirector.v2.json
@@ -128,7 +128,7 @@
       }
     }
   },
-  "revision": "20210408",
+  "revision": "20210414",
   "rootUrl": "https://trafficdirector.googleapis.com/",
   "schemas": {
     "Address": {