diff --git a/README.md b/README.md index 5088b6e37..bfcedbcde 100644 --- a/README.md +++ b/README.md @@ -57,13 +57,13 @@ implementation 'com.google.cloud:google-cloud-firestore' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-firestore:3.9.4' +implementation 'com.google.cloud:google-cloud-firestore:3.9.5' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-firestore" % "3.9.4" +libraryDependencies += "com.google.cloud" % "google-cloud-firestore" % "3.9.5" ``` @@ -222,7 +222,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-firestore/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-firestore.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-firestore/3.9.4 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-firestore/3.9.5 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/google-cloud-firestore/src/main/java/com/google/cloud/firestore/v1/FirestoreClient.java b/google-cloud-firestore/src/main/java/com/google/cloud/firestore/v1/FirestoreClient.java index 639803456..8f2bc7979 100644 --- a/google-cloud-firestore/src/main/java/com/google/cloud/firestore/v1/FirestoreClient.java +++ b/google-cloud-firestore/src/main/java/com/google/cloud/firestore/v1/FirestoreClient.java @@ -1040,7 +1040,7 @@ public final PartitionQueryPagedResponse partitionQuery(PartitionQueryRequest re // AUTO-GENERATED DOCUMENTATION AND METHOD. /** * Streams batches of document updates and deletes, in order. This method is only available via - * the gRPC API (not REST). + * gRPC or WebChannel (not REST). * *

Sample code: * @@ -1073,7 +1073,7 @@ public final BidiStreamingCallable writeCallable() // AUTO-GENERATED DOCUMENTATION AND METHOD. /** - * Listens to changes. This method is only available via the gRPC API (not REST). + * Listens to changes. This method is only available via gRPC or WebChannel (not REST). * *

Sample code: * diff --git a/grpc-google-cloud-firestore-v1/src/main/java/com/google/firestore/v1/FirestoreGrpc.java b/grpc-google-cloud-firestore-v1/src/main/java/com/google/firestore/v1/FirestoreGrpc.java index 62172b7ea..cc63ecb8d 100644 --- a/grpc-google-cloud-firestore-v1/src/main/java/com/google/firestore/v1/FirestoreGrpc.java +++ b/grpc-google-cloud-firestore-v1/src/main/java/com/google/firestore/v1/FirestoreGrpc.java @@ -952,7 +952,7 @@ default void partitionQuery( * *

      * Streams batches of document updates and deletes, in order. This method is
-     * only available via the gRPC API (not REST).
+     * only available via gRPC or WebChannel (not REST).
      * 
*/ default io.grpc.stub.StreamObserver write( @@ -965,8 +965,8 @@ default io.grpc.stub.StreamObserver write( * * *
-     * Listens to changes. This method is only available via the gRPC API (not
-     * REST).
+     * Listens to changes. This method is only available via gRPC or WebChannel
+     * (not REST).
      * 
*/ default io.grpc.stub.StreamObserver listen( @@ -1262,7 +1262,7 @@ public void partitionQuery( * *
      * Streams batches of document updates and deletes, in order. This method is
-     * only available via the gRPC API (not REST).
+     * only available via gRPC or WebChannel (not REST).
      * 
*/ public io.grpc.stub.StreamObserver write( @@ -1275,8 +1275,8 @@ public io.grpc.stub.StreamObserver write( * * *
-     * Listens to changes. This method is only available via the gRPC API (not
-     * REST).
+     * Listens to changes. This method is only available via gRPC or WebChannel
+     * (not REST).
      * 
*/ public io.grpc.stub.StreamObserver listen( diff --git a/proto-google-cloud-firestore-v1/src/main/java/com/google/firestore/v1/RunAggregationQueryResponse.java b/proto-google-cloud-firestore-v1/src/main/java/com/google/firestore/v1/RunAggregationQueryResponse.java index accc87995..d26e887ed 100644 --- a/proto-google-cloud-firestore-v1/src/main/java/com/google/firestore/v1/RunAggregationQueryResponse.java +++ b/proto-google-cloud-firestore-v1/src/main/java/com/google/firestore/v1/RunAggregationQueryResponse.java @@ -147,7 +147,13 @@ public com.google.protobuf.ByteString getTransaction() { * * *
-   * The time at which the aggregate value is valid for.
+   * The time at which the aggregate result was computed. This is always
+   * monotonically increasing; in this case, the previous AggregationResult in
+   * the result stream are guaranteed not to have changed between their
+   * `read_time` and this one.
+   * If the query returns no results, a response with `read_time` and no
+   * `result` will be sent, and this represents the time at which the query
+   * was run.
    * 
* * .google.protobuf.Timestamp read_time = 3; @@ -162,7 +168,13 @@ public boolean hasReadTime() { * * *
-   * The time at which the aggregate value is valid for.
+   * The time at which the aggregate result was computed. This is always
+   * monotonically increasing; in this case, the previous AggregationResult in
+   * the result stream are guaranteed not to have changed between their
+   * `read_time` and this one.
+   * If the query returns no results, a response with `read_time` and no
+   * `result` will be sent, and this represents the time at which the query
+   * was run.
    * 
* * .google.protobuf.Timestamp read_time = 3; @@ -177,7 +189,13 @@ public com.google.protobuf.Timestamp getReadTime() { * * *
-   * The time at which the aggregate value is valid for.
+   * The time at which the aggregate result was computed. This is always
+   * monotonically increasing; in this case, the previous AggregationResult in
+   * the result stream are guaranteed not to have changed between their
+   * `read_time` and this one.
+   * If the query returns no results, a response with `read_time` and no
+   * `result` will be sent, and this represents the time at which the query
+   * was run.
    * 
* * .google.protobuf.Timestamp read_time = 3; @@ -853,7 +871,13 @@ public Builder clearTransaction() { * * *
-     * The time at which the aggregate value is valid for.
+     * The time at which the aggregate result was computed. This is always
+     * monotonically increasing; in this case, the previous AggregationResult in
+     * the result stream are guaranteed not to have changed between their
+     * `read_time` and this one.
+     * If the query returns no results, a response with `read_time` and no
+     * `result` will be sent, and this represents the time at which the query
+     * was run.
      * 
* * .google.protobuf.Timestamp read_time = 3; @@ -867,7 +891,13 @@ public boolean hasReadTime() { * * *
-     * The time at which the aggregate value is valid for.
+     * The time at which the aggregate result was computed. This is always
+     * monotonically increasing; in this case, the previous AggregationResult in
+     * the result stream are guaranteed not to have changed between their
+     * `read_time` and this one.
+     * If the query returns no results, a response with `read_time` and no
+     * `result` will be sent, and this represents the time at which the query
+     * was run.
      * 
* * .google.protobuf.Timestamp read_time = 3; @@ -885,7 +915,13 @@ public com.google.protobuf.Timestamp getReadTime() { * * *
-     * The time at which the aggregate value is valid for.
+     * The time at which the aggregate result was computed. This is always
+     * monotonically increasing; in this case, the previous AggregationResult in
+     * the result stream are guaranteed not to have changed between their
+     * `read_time` and this one.
+     * If the query returns no results, a response with `read_time` and no
+     * `result` will be sent, and this represents the time at which the query
+     * was run.
      * 
* * .google.protobuf.Timestamp read_time = 3; @@ -907,7 +943,13 @@ public Builder setReadTime(com.google.protobuf.Timestamp value) { * * *
-     * The time at which the aggregate value is valid for.
+     * The time at which the aggregate result was computed. This is always
+     * monotonically increasing; in this case, the previous AggregationResult in
+     * the result stream are guaranteed not to have changed between their
+     * `read_time` and this one.
+     * If the query returns no results, a response with `read_time` and no
+     * `result` will be sent, and this represents the time at which the query
+     * was run.
      * 
* * .google.protobuf.Timestamp read_time = 3; @@ -926,7 +968,13 @@ public Builder setReadTime(com.google.protobuf.Timestamp.Builder builderForValue * * *
-     * The time at which the aggregate value is valid for.
+     * The time at which the aggregate result was computed. This is always
+     * monotonically increasing; in this case, the previous AggregationResult in
+     * the result stream are guaranteed not to have changed between their
+     * `read_time` and this one.
+     * If the query returns no results, a response with `read_time` and no
+     * `result` will be sent, and this represents the time at which the query
+     * was run.
      * 
* * .google.protobuf.Timestamp read_time = 3; @@ -951,7 +999,13 @@ public Builder mergeReadTime(com.google.protobuf.Timestamp value) { * * *
-     * The time at which the aggregate value is valid for.
+     * The time at which the aggregate result was computed. This is always
+     * monotonically increasing; in this case, the previous AggregationResult in
+     * the result stream are guaranteed not to have changed between their
+     * `read_time` and this one.
+     * If the query returns no results, a response with `read_time` and no
+     * `result` will be sent, and this represents the time at which the query
+     * was run.
      * 
* * .google.protobuf.Timestamp read_time = 3; @@ -970,7 +1024,13 @@ public Builder clearReadTime() { * * *
-     * The time at which the aggregate value is valid for.
+     * The time at which the aggregate result was computed. This is always
+     * monotonically increasing; in this case, the previous AggregationResult in
+     * the result stream are guaranteed not to have changed between their
+     * `read_time` and this one.
+     * If the query returns no results, a response with `read_time` and no
+     * `result` will be sent, and this represents the time at which the query
+     * was run.
      * 
* * .google.protobuf.Timestamp read_time = 3; @@ -984,7 +1044,13 @@ public com.google.protobuf.Timestamp.Builder getReadTimeBuilder() { * * *
-     * The time at which the aggregate value is valid for.
+     * The time at which the aggregate result was computed. This is always
+     * monotonically increasing; in this case, the previous AggregationResult in
+     * the result stream are guaranteed not to have changed between their
+     * `read_time` and this one.
+     * If the query returns no results, a response with `read_time` and no
+     * `result` will be sent, and this represents the time at which the query
+     * was run.
      * 
* * .google.protobuf.Timestamp read_time = 3; @@ -1000,7 +1066,13 @@ public com.google.protobuf.TimestampOrBuilder getReadTimeOrBuilder() { * * *
-     * The time at which the aggregate value is valid for.
+     * The time at which the aggregate result was computed. This is always
+     * monotonically increasing; in this case, the previous AggregationResult in
+     * the result stream are guaranteed not to have changed between their
+     * `read_time` and this one.
+     * If the query returns no results, a response with `read_time` and no
+     * `result` will be sent, and this represents the time at which the query
+     * was run.
      * 
* * .google.protobuf.Timestamp read_time = 3; diff --git a/proto-google-cloud-firestore-v1/src/main/java/com/google/firestore/v1/RunAggregationQueryResponseOrBuilder.java b/proto-google-cloud-firestore-v1/src/main/java/com/google/firestore/v1/RunAggregationQueryResponseOrBuilder.java index 8a7025bbd..e6c7fb085 100644 --- a/proto-google-cloud-firestore-v1/src/main/java/com/google/firestore/v1/RunAggregationQueryResponseOrBuilder.java +++ b/proto-google-cloud-firestore-v1/src/main/java/com/google/firestore/v1/RunAggregationQueryResponseOrBuilder.java @@ -80,7 +80,13 @@ public interface RunAggregationQueryResponseOrBuilder * * *
-   * The time at which the aggregate value is valid for.
+   * The time at which the aggregate result was computed. This is always
+   * monotonically increasing; in this case, the previous AggregationResult in
+   * the result stream are guaranteed not to have changed between their
+   * `read_time` and this one.
+   * If the query returns no results, a response with `read_time` and no
+   * `result` will be sent, and this represents the time at which the query
+   * was run.
    * 
* * .google.protobuf.Timestamp read_time = 3; @@ -92,7 +98,13 @@ public interface RunAggregationQueryResponseOrBuilder * * *
-   * The time at which the aggregate value is valid for.
+   * The time at which the aggregate result was computed. This is always
+   * monotonically increasing; in this case, the previous AggregationResult in
+   * the result stream are guaranteed not to have changed between their
+   * `read_time` and this one.
+   * If the query returns no results, a response with `read_time` and no
+   * `result` will be sent, and this represents the time at which the query
+   * was run.
    * 
* * .google.protobuf.Timestamp read_time = 3; @@ -104,7 +116,13 @@ public interface RunAggregationQueryResponseOrBuilder * * *
-   * The time at which the aggregate value is valid for.
+   * The time at which the aggregate result was computed. This is always
+   * monotonically increasing; in this case, the previous AggregationResult in
+   * the result stream are guaranteed not to have changed between their
+   * `read_time` and this one.
+   * If the query returns no results, a response with `read_time` and no
+   * `result` will be sent, and this represents the time at which the query
+   * was run.
    * 
* * .google.protobuf.Timestamp read_time = 3; diff --git a/proto-google-cloud-firestore-v1/src/main/java/com/google/firestore/v1/StructuredAggregationQuery.java b/proto-google-cloud-firestore-v1/src/main/java/com/google/firestore/v1/StructuredAggregationQuery.java index cbdc7e795..4713859cd 100644 --- a/proto-google-cloud-firestore-v1/src/main/java/com/google/firestore/v1/StructuredAggregationQuery.java +++ b/proto-google-cloud-firestore-v1/src/main/java/com/google/firestore/v1/StructuredAggregationQuery.java @@ -122,7 +122,7 @@ public interface AggregationOrBuilder * COUNT_UP_TO(1) AS count_up_to_1, * COUNT_UP_TO(2), * COUNT_UP_TO(3) AS count_up_to_3, - * COUNT_UP_TO(4) + * COUNT(*) * OVER ( * ... * ); @@ -133,7 +133,7 @@ public interface AggregationOrBuilder * COUNT_UP_TO(1) AS count_up_to_1, * COUNT_UP_TO(2) AS field_1, * COUNT_UP_TO(3) AS count_up_to_3, - * COUNT_UP_TO(4) AS field_2 + * COUNT(*) AS field_2 * OVER ( * ... * ); @@ -162,7 +162,7 @@ public interface AggregationOrBuilder * COUNT_UP_TO(1) AS count_up_to_1, * COUNT_UP_TO(2), * COUNT_UP_TO(3) AS count_up_to_3, - * COUNT_UP_TO(4) + * COUNT(*) * OVER ( * ... * ); @@ -173,7 +173,7 @@ public interface AggregationOrBuilder * COUNT_UP_TO(1) AS count_up_to_1, * COUNT_UP_TO(2) AS field_1, * COUNT_UP_TO(3) AS count_up_to_3, - * COUNT_UP_TO(4) AS field_2 + * COUNT(*) AS field_2 * OVER ( * ... * ); @@ -197,7 +197,7 @@ public interface AggregationOrBuilder * * *
-   * Defines a aggregation that produces a single result.
+   * Defines an aggregation that produces a single result.
    * 
* * Protobuf type {@code google.firestore.v1.StructuredAggregationQuery.Aggregation} @@ -254,7 +254,7 @@ public interface CountOrBuilder * Optional. Optional constraint on the maximum number of documents to * count. * This provides a way to set an upper bound on the number of documents - * to scan, limiting latency and cost. + * to scan, limiting latency, and cost. * Unspecified is interpreted as no bound. * High-Level Example: * ``` @@ -277,7 +277,7 @@ public interface CountOrBuilder * Optional. Optional constraint on the maximum number of documents to * count. * This provides a way to set an upper bound on the number of documents - * to scan, limiting latency and cost. + * to scan, limiting latency, and cost. * Unspecified is interpreted as no bound. * High-Level Example: * ``` @@ -300,7 +300,7 @@ public interface CountOrBuilder * Optional. Optional constraint on the maximum number of documents to * count. * This provides a way to set an upper bound on the number of documents - * to scan, limiting latency and cost. + * to scan, limiting latency, and cost. * Unspecified is interpreted as no bound. * High-Level Example: * ``` @@ -373,7 +373,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { * Optional. Optional constraint on the maximum number of documents to * count. * This provides a way to set an upper bound on the number of documents - * to scan, limiting latency and cost. + * to scan, limiting latency, and cost. * Unspecified is interpreted as no bound. * High-Level Example: * ``` @@ -399,7 +399,7 @@ public boolean hasUpTo() { * Optional. Optional constraint on the maximum number of documents to * count. * This provides a way to set an upper bound on the number of documents - * to scan, limiting latency and cost. + * to scan, limiting latency, and cost. * Unspecified is interpreted as no bound. * High-Level Example: * ``` @@ -425,7 +425,7 @@ public com.google.protobuf.Int64Value getUpTo() { * Optional. Optional constraint on the maximum number of documents to * count. * This provides a way to set an upper bound on the number of documents - * to scan, limiting latency and cost. + * to scan, limiting latency, and cost. * Unspecified is interpreted as no bound. * High-Level Example: * ``` @@ -825,7 +825,7 @@ public Builder mergeFrom( * Optional. Optional constraint on the maximum number of documents to * count. * This provides a way to set an upper bound on the number of documents - * to scan, limiting latency and cost. + * to scan, limiting latency, and cost. * Unspecified is interpreted as no bound. * High-Level Example: * ``` @@ -850,7 +850,7 @@ public boolean hasUpTo() { * Optional. Optional constraint on the maximum number of documents to * count. * This provides a way to set an upper bound on the number of documents - * to scan, limiting latency and cost. + * to scan, limiting latency, and cost. * Unspecified is interpreted as no bound. * High-Level Example: * ``` @@ -879,7 +879,7 @@ public com.google.protobuf.Int64Value getUpTo() { * Optional. Optional constraint on the maximum number of documents to * count. * This provides a way to set an upper bound on the number of documents - * to scan, limiting latency and cost. + * to scan, limiting latency, and cost. * Unspecified is interpreted as no bound. * High-Level Example: * ``` @@ -912,7 +912,7 @@ public Builder setUpTo(com.google.protobuf.Int64Value value) { * Optional. Optional constraint on the maximum number of documents to * count. * This provides a way to set an upper bound on the number of documents - * to scan, limiting latency and cost. + * to scan, limiting latency, and cost. * Unspecified is interpreted as no bound. * High-Level Example: * ``` @@ -942,7 +942,7 @@ public Builder setUpTo(com.google.protobuf.Int64Value.Builder builderForValue) { * Optional. Optional constraint on the maximum number of documents to * count. * This provides a way to set an upper bound on the number of documents - * to scan, limiting latency and cost. + * to scan, limiting latency, and cost. * Unspecified is interpreted as no bound. * High-Level Example: * ``` @@ -978,7 +978,7 @@ public Builder mergeUpTo(com.google.protobuf.Int64Value value) { * Optional. Optional constraint on the maximum number of documents to * count. * This provides a way to set an upper bound on the number of documents - * to scan, limiting latency and cost. + * to scan, limiting latency, and cost. * Unspecified is interpreted as no bound. * High-Level Example: * ``` @@ -1008,7 +1008,7 @@ public Builder clearUpTo() { * Optional. Optional constraint on the maximum number of documents to * count. * This provides a way to set an upper bound on the number of documents - * to scan, limiting latency and cost. + * to scan, limiting latency, and cost. * Unspecified is interpreted as no bound. * High-Level Example: * ``` @@ -1033,7 +1033,7 @@ public com.google.protobuf.Int64Value.Builder getUpToBuilder() { * Optional. Optional constraint on the maximum number of documents to * count. * This provides a way to set an upper bound on the number of documents - * to scan, limiting latency and cost. + * to scan, limiting latency, and cost. * Unspecified is interpreted as no bound. * High-Level Example: * ``` @@ -1060,7 +1060,7 @@ public com.google.protobuf.Int64ValueOrBuilder getUpToOrBuilder() { * Optional. Optional constraint on the maximum number of documents to * count. * This provides a way to set an upper bound on the number of documents - * to scan, limiting latency and cost. + * to scan, limiting latency, and cost. * Unspecified is interpreted as no bound. * High-Level Example: * ``` @@ -1273,7 +1273,7 @@ public com.google.firestore.v1.StructuredAggregationQuery.Aggregation.Count getC * COUNT_UP_TO(1) AS count_up_to_1, * COUNT_UP_TO(2), * COUNT_UP_TO(3) AS count_up_to_3, - * COUNT_UP_TO(4) + * COUNT(*) * OVER ( * ... * ); @@ -1284,7 +1284,7 @@ public com.google.firestore.v1.StructuredAggregationQuery.Aggregation.Count getC * COUNT_UP_TO(1) AS count_up_to_1, * COUNT_UP_TO(2) AS field_1, * COUNT_UP_TO(3) AS count_up_to_3, - * COUNT_UP_TO(4) AS field_2 + * COUNT(*) AS field_2 * OVER ( * ... * ); @@ -1324,7 +1324,7 @@ public java.lang.String getAlias() { * COUNT_UP_TO(1) AS count_up_to_1, * COUNT_UP_TO(2), * COUNT_UP_TO(3) AS count_up_to_3, - * COUNT_UP_TO(4) + * COUNT(*) * OVER ( * ... * ); @@ -1335,7 +1335,7 @@ public java.lang.String getAlias() { * COUNT_UP_TO(1) AS count_up_to_1, * COUNT_UP_TO(2) AS field_1, * COUNT_UP_TO(3) AS count_up_to_3, - * COUNT_UP_TO(4) AS field_2 + * COUNT(*) AS field_2 * OVER ( * ... * ); @@ -1554,7 +1554,7 @@ protected Builder newBuilderForType( * * *
-     * Defines a aggregation that produces a single result.
+     * Defines an aggregation that produces a single result.
      * 
* * Protobuf type {@code google.firestore.v1.StructuredAggregationQuery.Aggregation} @@ -2022,7 +2022,7 @@ public Builder clearCount() { * COUNT_UP_TO(1) AS count_up_to_1, * COUNT_UP_TO(2), * COUNT_UP_TO(3) AS count_up_to_3, - * COUNT_UP_TO(4) + * COUNT(*) * OVER ( * ... * ); @@ -2033,7 +2033,7 @@ public Builder clearCount() { * COUNT_UP_TO(1) AS count_up_to_1, * COUNT_UP_TO(2) AS field_1, * COUNT_UP_TO(3) AS count_up_to_3, - * COUNT_UP_TO(4) AS field_2 + * COUNT(*) AS field_2 * OVER ( * ... * ); @@ -2072,7 +2072,7 @@ public java.lang.String getAlias() { * COUNT_UP_TO(1) AS count_up_to_1, * COUNT_UP_TO(2), * COUNT_UP_TO(3) AS count_up_to_3, - * COUNT_UP_TO(4) + * COUNT(*) * OVER ( * ... * ); @@ -2083,7 +2083,7 @@ public java.lang.String getAlias() { * COUNT_UP_TO(1) AS count_up_to_1, * COUNT_UP_TO(2) AS field_1, * COUNT_UP_TO(3) AS count_up_to_3, - * COUNT_UP_TO(4) AS field_2 + * COUNT(*) AS field_2 * OVER ( * ... * ); @@ -2122,7 +2122,7 @@ public com.google.protobuf.ByteString getAliasBytes() { * COUNT_UP_TO(1) AS count_up_to_1, * COUNT_UP_TO(2), * COUNT_UP_TO(3) AS count_up_to_3, - * COUNT_UP_TO(4) + * COUNT(*) * OVER ( * ... * ); @@ -2133,7 +2133,7 @@ public com.google.protobuf.ByteString getAliasBytes() { * COUNT_UP_TO(1) AS count_up_to_1, * COUNT_UP_TO(2) AS field_1, * COUNT_UP_TO(3) AS count_up_to_3, - * COUNT_UP_TO(4) AS field_2 + * COUNT(*) AS field_2 * OVER ( * ... * ); @@ -2171,7 +2171,7 @@ public Builder setAlias(java.lang.String value) { * COUNT_UP_TO(1) AS count_up_to_1, * COUNT_UP_TO(2), * COUNT_UP_TO(3) AS count_up_to_3, - * COUNT_UP_TO(4) + * COUNT(*) * OVER ( * ... * ); @@ -2182,7 +2182,7 @@ public Builder setAlias(java.lang.String value) { * COUNT_UP_TO(1) AS count_up_to_1, * COUNT_UP_TO(2) AS field_1, * COUNT_UP_TO(3) AS count_up_to_3, - * COUNT_UP_TO(4) AS field_2 + * COUNT(*) AS field_2 * OVER ( * ... * ); @@ -2216,7 +2216,7 @@ public Builder clearAlias() { * COUNT_UP_TO(1) AS count_up_to_1, * COUNT_UP_TO(2), * COUNT_UP_TO(3) AS count_up_to_3, - * COUNT_UP_TO(4) + * COUNT(*) * OVER ( * ... * ); @@ -2227,7 +2227,7 @@ public Builder clearAlias() { * COUNT_UP_TO(1) AS count_up_to_1, * COUNT_UP_TO(2) AS field_1, * COUNT_UP_TO(3) AS count_up_to_3, - * COUNT_UP_TO(4) AS field_2 + * COUNT(*) AS field_2 * OVER ( * ... * ); diff --git a/proto-google-cloud-firestore-v1/src/main/java/com/google/firestore/v1/StructuredQuery.java b/proto-google-cloud-firestore-v1/src/main/java/com/google/firestore/v1/StructuredQuery.java index 85c551829..370084e48 100644 --- a/proto-google-cloud-firestore-v1/src/main/java/com/google/firestore/v1/StructuredQuery.java +++ b/proto-google-cloud-firestore-v1/src/main/java/com/google/firestore/v1/StructuredQuery.java @@ -4163,8 +4163,9 @@ public enum Operator implements com.google.protobuf.ProtocolMessageEnum { *
        * The given `field` is equal to at least one value in the given array.
        * Requires:
-       * * That `value` is a non-empty `ArrayValue` with at most 10 values.
-       * * No other `IN` or `ARRAY_CONTAINS_ANY` or `NOT_IN`.
+       * * That `value` is a non-empty `ArrayValue`, subject to disjunction
+       *   limits.
+       * * No `NOT_IN` filters in the same query.
        * 
* * IN = 8; @@ -4177,8 +4178,10 @@ public enum Operator implements com.google.protobuf.ProtocolMessageEnum { * The given `field` is an array that contains any of the values in the * given array. * Requires: - * * That `value` is a non-empty `ArrayValue` with at most 10 values. - * * No other `IN` or `ARRAY_CONTAINS_ANY` or `NOT_IN`. + * * That `value` is a non-empty `ArrayValue`, subject to disjunction + * limits. + * * No other `ARRAY_CONTAINS_ANY` filters within the same disjunction. + * * No `NOT_IN` filters in the same query. * * * ARRAY_CONTAINS_ANY = 9; @@ -4191,7 +4194,7 @@ public enum Operator implements com.google.protobuf.ProtocolMessageEnum { * The value of the `field` is not in the given array. * Requires: * * That `value` is a non-empty `ArrayValue` with at most 10 values. - * * No other `IN`, `ARRAY_CONTAINS_ANY`, `NOT_IN`, `NOT_EQUAL`, + * * No other `OR`, `IN`, `ARRAY_CONTAINS_ANY`, `NOT_IN`, `NOT_EQUAL`, * `IS_NOT_NULL`, or `IS_NOT_NAN`. * * That `field` comes first in the `order_by`. * @@ -4299,8 +4302,9 @@ public enum Operator implements com.google.protobuf.ProtocolMessageEnum { *
        * The given `field` is equal to at least one value in the given array.
        * Requires:
-       * * That `value` is a non-empty `ArrayValue` with at most 10 values.
-       * * No other `IN` or `ARRAY_CONTAINS_ANY` or `NOT_IN`.
+       * * That `value` is a non-empty `ArrayValue`, subject to disjunction
+       *   limits.
+       * * No `NOT_IN` filters in the same query.
        * 
* * IN = 8; @@ -4313,8 +4317,10 @@ public enum Operator implements com.google.protobuf.ProtocolMessageEnum { * The given `field` is an array that contains any of the values in the * given array. * Requires: - * * That `value` is a non-empty `ArrayValue` with at most 10 values. - * * No other `IN` or `ARRAY_CONTAINS_ANY` or `NOT_IN`. + * * That `value` is a non-empty `ArrayValue`, subject to disjunction + * limits. + * * No other `ARRAY_CONTAINS_ANY` filters within the same disjunction. + * * No `NOT_IN` filters in the same query. * * * ARRAY_CONTAINS_ANY = 9; @@ -4327,7 +4333,7 @@ public enum Operator implements com.google.protobuf.ProtocolMessageEnum { * The value of the `field` is not in the given array. * Requires: * * That `value` is a non-empty `ArrayValue` with at most 10 values. - * * No other `IN`, `ARRAY_CONTAINS_ANY`, `NOT_IN`, `NOT_EQUAL`, + * * No other `OR`, `IN`, `ARRAY_CONTAINS_ANY`, `NOT_IN`, `NOT_EQUAL`, * `IS_NOT_NULL`, or `IS_NOT_NAN`. * * That `field` comes first in the `order_by`. * @@ -9406,7 +9412,10 @@ public com.google.firestore.v1.StructuredQuery.Projection getDefaultInstanceForT * * *
-   * The projection to return.
+   * Optional sub-set of the fields to return.
+   * This acts as a [DocumentMask][google.firestore.v1.DocumentMask] over the
+   * documents returned from a query. When not set, assumes that the caller
+   * wants all fields returned.
    * 
* * .google.firestore.v1.StructuredQuery.Projection select = 1; @@ -9421,7 +9430,10 @@ public boolean hasSelect() { * * *
-   * The projection to return.
+   * Optional sub-set of the fields to return.
+   * This acts as a [DocumentMask][google.firestore.v1.DocumentMask] over the
+   * documents returned from a query. When not set, assumes that the caller
+   * wants all fields returned.
    * 
* * .google.firestore.v1.StructuredQuery.Projection select = 1; @@ -9438,7 +9450,10 @@ public com.google.firestore.v1.StructuredQuery.Projection getSelect() { * * *
-   * The projection to return.
+   * Optional sub-set of the fields to return.
+   * This acts as a [DocumentMask][google.firestore.v1.DocumentMask] over the
+   * documents returned from a query. When not set, assumes that the caller
+   * wants all fields returned.
    * 
* * .google.firestore.v1.StructuredQuery.Projection select = 1; @@ -10608,7 +10623,10 @@ public Builder mergeFrom( * * *
-     * The projection to return.
+     * Optional sub-set of the fields to return.
+     * This acts as a [DocumentMask][google.firestore.v1.DocumentMask] over the
+     * documents returned from a query. When not set, assumes that the caller
+     * wants all fields returned.
      * 
* * .google.firestore.v1.StructuredQuery.Projection select = 1; @@ -10622,7 +10640,10 @@ public boolean hasSelect() { * * *
-     * The projection to return.
+     * Optional sub-set of the fields to return.
+     * This acts as a [DocumentMask][google.firestore.v1.DocumentMask] over the
+     * documents returned from a query. When not set, assumes that the caller
+     * wants all fields returned.
      * 
* * .google.firestore.v1.StructuredQuery.Projection select = 1; @@ -10642,7 +10663,10 @@ public com.google.firestore.v1.StructuredQuery.Projection getSelect() { * * *
-     * The projection to return.
+     * Optional sub-set of the fields to return.
+     * This acts as a [DocumentMask][google.firestore.v1.DocumentMask] over the
+     * documents returned from a query. When not set, assumes that the caller
+     * wants all fields returned.
      * 
* * .google.firestore.v1.StructuredQuery.Projection select = 1; @@ -10664,7 +10688,10 @@ public Builder setSelect(com.google.firestore.v1.StructuredQuery.Projection valu * * *
-     * The projection to return.
+     * Optional sub-set of the fields to return.
+     * This acts as a [DocumentMask][google.firestore.v1.DocumentMask] over the
+     * documents returned from a query. When not set, assumes that the caller
+     * wants all fields returned.
      * 
* * .google.firestore.v1.StructuredQuery.Projection select = 1; @@ -10684,7 +10711,10 @@ public Builder setSelect( * * *
-     * The projection to return.
+     * Optional sub-set of the fields to return.
+     * This acts as a [DocumentMask][google.firestore.v1.DocumentMask] over the
+     * documents returned from a query. When not set, assumes that the caller
+     * wants all fields returned.
      * 
* * .google.firestore.v1.StructuredQuery.Projection select = 1; @@ -10709,7 +10739,10 @@ public Builder mergeSelect(com.google.firestore.v1.StructuredQuery.Projection va * * *
-     * The projection to return.
+     * Optional sub-set of the fields to return.
+     * This acts as a [DocumentMask][google.firestore.v1.DocumentMask] over the
+     * documents returned from a query. When not set, assumes that the caller
+     * wants all fields returned.
      * 
* * .google.firestore.v1.StructuredQuery.Projection select = 1; @@ -10728,7 +10761,10 @@ public Builder clearSelect() { * * *
-     * The projection to return.
+     * Optional sub-set of the fields to return.
+     * This acts as a [DocumentMask][google.firestore.v1.DocumentMask] over the
+     * documents returned from a query. When not set, assumes that the caller
+     * wants all fields returned.
      * 
* * .google.firestore.v1.StructuredQuery.Projection select = 1; @@ -10742,7 +10778,10 @@ public com.google.firestore.v1.StructuredQuery.Projection.Builder getSelectBuild * * *
-     * The projection to return.
+     * Optional sub-set of the fields to return.
+     * This acts as a [DocumentMask][google.firestore.v1.DocumentMask] over the
+     * documents returned from a query. When not set, assumes that the caller
+     * wants all fields returned.
      * 
* * .google.firestore.v1.StructuredQuery.Projection select = 1; @@ -10760,7 +10799,10 @@ public com.google.firestore.v1.StructuredQuery.ProjectionOrBuilder getSelectOrBu * * *
-     * The projection to return.
+     * Optional sub-set of the fields to return.
+     * This acts as a [DocumentMask][google.firestore.v1.DocumentMask] over the
+     * documents returned from a query. When not set, assumes that the caller
+     * wants all fields returned.
      * 
* * .google.firestore.v1.StructuredQuery.Projection select = 1; diff --git a/proto-google-cloud-firestore-v1/src/main/java/com/google/firestore/v1/StructuredQueryOrBuilder.java b/proto-google-cloud-firestore-v1/src/main/java/com/google/firestore/v1/StructuredQueryOrBuilder.java index 94d6bf2e3..97885b040 100644 --- a/proto-google-cloud-firestore-v1/src/main/java/com/google/firestore/v1/StructuredQueryOrBuilder.java +++ b/proto-google-cloud-firestore-v1/src/main/java/com/google/firestore/v1/StructuredQueryOrBuilder.java @@ -27,7 +27,10 @@ public interface StructuredQueryOrBuilder * * *
-   * The projection to return.
+   * Optional sub-set of the fields to return.
+   * This acts as a [DocumentMask][google.firestore.v1.DocumentMask] over the
+   * documents returned from a query. When not set, assumes that the caller
+   * wants all fields returned.
    * 
* * .google.firestore.v1.StructuredQuery.Projection select = 1; @@ -39,7 +42,10 @@ public interface StructuredQueryOrBuilder * * *
-   * The projection to return.
+   * Optional sub-set of the fields to return.
+   * This acts as a [DocumentMask][google.firestore.v1.DocumentMask] over the
+   * documents returned from a query. When not set, assumes that the caller
+   * wants all fields returned.
    * 
* * .google.firestore.v1.StructuredQuery.Projection select = 1; @@ -51,7 +57,10 @@ public interface StructuredQueryOrBuilder * * *
-   * The projection to return.
+   * Optional sub-set of the fields to return.
+   * This acts as a [DocumentMask][google.firestore.v1.DocumentMask] over the
+   * documents returned from a query. When not set, assumes that the caller
+   * wants all fields returned.
    * 
* * .google.firestore.v1.StructuredQuery.Projection select = 1; diff --git a/proto-google-cloud-firestore-v1/src/main/proto/google/firestore/v1/aggregation_result.proto b/proto-google-cloud-firestore-v1/src/main/proto/google/firestore/v1/aggregation_result.proto index 87ff8d3fc..05fea5da9 100644 --- a/proto-google-cloud-firestore-v1/src/main/proto/google/firestore/v1/aggregation_result.proto +++ b/proto-google-cloud-firestore-v1/src/main/proto/google/firestore/v1/aggregation_result.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/proto-google-cloud-firestore-v1/src/main/proto/google/firestore/v1/common.proto b/proto-google-cloud-firestore-v1/src/main/proto/google/firestore/v1/common.proto index ab02ec76e..29cde08d3 100644 --- a/proto-google-cloud-firestore-v1/src/main/proto/google/firestore/v1/common.proto +++ b/proto-google-cloud-firestore-v1/src/main/proto/google/firestore/v1/common.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/proto-google-cloud-firestore-v1/src/main/proto/google/firestore/v1/document.proto b/proto-google-cloud-firestore-v1/src/main/proto/google/firestore/v1/document.proto index 41317245f..795200498 100644 --- a/proto-google-cloud-firestore-v1/src/main/proto/google/firestore/v1/document.proto +++ b/proto-google-cloud-firestore-v1/src/main/proto/google/firestore/v1/document.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/proto-google-cloud-firestore-v1/src/main/proto/google/firestore/v1/firestore.proto b/proto-google-cloud-firestore-v1/src/main/proto/google/firestore/v1/firestore.proto index 2de2116b2..088388ade 100644 --- a/proto-google-cloud-firestore-v1/src/main/proto/google/firestore/v1/firestore.proto +++ b/proto-google-cloud-firestore-v1/src/main/proto/google/firestore/v1/firestore.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -178,7 +178,7 @@ service Firestore { } // Streams batches of document updates and deletes, in order. This method is - // only available via the gRPC API (not REST). + // only available via gRPC or WebChannel (not REST). rpc Write(stream WriteRequest) returns (stream WriteResponse) { option (google.api.http) = { post: "/v1/{database=projects/*/databases/*}/documents:write" @@ -186,8 +186,8 @@ service Firestore { }; } - // Listens to changes. This method is only available via the gRPC API (not - // REST). + // Listens to changes. This method is only available via gRPC or WebChannel + // (not REST). rpc Listen(stream ListenRequest) returns (stream ListenResponse) { option (google.api.http) = { post: "/v1/{database=projects/*/databases/*}/documents:listen" @@ -655,7 +655,14 @@ message RunAggregationQueryResponse { // a new transaction. bytes transaction = 2; - // The time at which the aggregate value is valid for. + // The time at which the aggregate result was computed. This is always + // monotonically increasing; in this case, the previous AggregationResult in + // the result stream are guaranteed not to have changed between their + // `read_time` and this one. + // + // If the query returns no results, a response with `read_time` and no + // `result` will be sent, and this represents the time at which the query + // was run. google.protobuf.Timestamp read_time = 3; } diff --git a/proto-google-cloud-firestore-v1/src/main/proto/google/firestore/v1/query.proto b/proto-google-cloud-firestore-v1/src/main/proto/google/firestore/v1/query.proto index faf1f7b0f..8f89c48d9 100644 --- a/proto-google-cloud-firestore-v1/src/main/proto/google/firestore/v1/query.proto +++ b/proto-google-cloud-firestore-v1/src/main/proto/google/firestore/v1/query.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -136,8 +136,9 @@ message StructuredQuery { // // Requires: // - // * That `value` is a non-empty `ArrayValue` with at most 10 values. - // * No other `IN` or `ARRAY_CONTAINS_ANY` or `NOT_IN`. + // * That `value` is a non-empty `ArrayValue`, subject to disjunction + // limits. + // * No `NOT_IN` filters in the same query. IN = 8; // The given `field` is an array that contains any of the values in the @@ -145,8 +146,10 @@ message StructuredQuery { // // Requires: // - // * That `value` is a non-empty `ArrayValue` with at most 10 values. - // * No other `IN` or `ARRAY_CONTAINS_ANY` or `NOT_IN`. + // * That `value` is a non-empty `ArrayValue`, subject to disjunction + // limits. + // * No other `ARRAY_CONTAINS_ANY` filters within the same disjunction. + // * No `NOT_IN` filters in the same query. ARRAY_CONTAINS_ANY = 9; // The value of the `field` is not in the given array. @@ -154,7 +157,7 @@ message StructuredQuery { // Requires: // // * That `value` is a non-empty `ArrayValue` with at most 10 values. - // * No other `IN`, `ARRAY_CONTAINS_ANY`, `NOT_IN`, `NOT_EQUAL`, + // * No other `OR`, `IN`, `ARRAY_CONTAINS_ANY`, `NOT_IN`, `NOT_EQUAL`, // `IS_NOT_NULL`, or `IS_NOT_NAN`. // * That `field` comes first in the `order_by`. NOT_IN = 10; @@ -251,7 +254,11 @@ message StructuredQuery { repeated FieldReference fields = 2; } - // The projection to return. + // Optional sub-set of the fields to return. + // + // This acts as a [DocumentMask][google.firestore.v1.DocumentMask] over the + // documents returned from a query. When not set, assumes that the caller + // wants all fields returned. Projection select = 1; // The collections to query. @@ -349,7 +356,7 @@ message StructuredQuery { // Firestore query for running an aggregation over a // [StructuredQuery][google.firestore.v1.StructuredQuery]. message StructuredAggregationQuery { - // Defines a aggregation that produces a single result. + // Defines an aggregation that produces a single result. message Aggregation { // Count of documents that match the query. // @@ -360,7 +367,7 @@ message StructuredAggregationQuery { // count. // // This provides a way to set an upper bound on the number of documents - // to scan, limiting latency and cost. + // to scan, limiting latency, and cost. // // Unspecified is interpreted as no bound. // @@ -394,7 +401,7 @@ message StructuredAggregationQuery { // COUNT_UP_TO(1) AS count_up_to_1, // COUNT_UP_TO(2), // COUNT_UP_TO(3) AS count_up_to_3, - // COUNT_UP_TO(4) + // COUNT(*) // OVER ( // ... // ); @@ -407,7 +414,7 @@ message StructuredAggregationQuery { // COUNT_UP_TO(1) AS count_up_to_1, // COUNT_UP_TO(2) AS field_1, // COUNT_UP_TO(3) AS count_up_to_3, - // COUNT_UP_TO(4) AS field_2 + // COUNT(*) AS field_2 // OVER ( // ... // ); diff --git a/proto-google-cloud-firestore-v1/src/main/proto/google/firestore/v1/write.proto b/proto-google-cloud-firestore-v1/src/main/proto/google/firestore/v1/write.proto index 50001487c..3760f9a34 100644 --- a/proto-google-cloud-firestore-v1/src/main/proto/google/firestore/v1/write.proto +++ b/proto-google-cloud-firestore-v1/src/main/proto/google/firestore/v1/write.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License.