diff --git a/README.md b/README.md index c6f7d25329..a057442056 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.79.0') +implementation platform('com.google.cloud:libraries-bom:26.80.0') implementation 'com.google.cloud:google-cloud-firestore' ``` diff --git a/generation_config.yaml b/generation_config.yaml index 3600586ed3..8621238232 100644 --- a/generation_config.yaml +++ b/generation_config.yaml @@ -1,6 +1,6 @@ -gapic_generator_version: 2.71.0 -googleapis_commitish: 62e4ecb2f4390728990514fea14aad0431881a52 -libraries_bom_version: 26.79.0 +gapic_generator_version: 2.72.0 +googleapis_commitish: c2648728afb6deff882cfc4167a21abd382870fa +libraries_bom_version: 26.80.0 libraries: - api_shortname: firestore name_pretty: Cloud Firestore diff --git a/google-cloud-firestore-admin/src/main/resources/META-INF/native-image/com.google.cloud.firestore.v1/reflect-config.json b/google-cloud-firestore-admin/src/main/resources/META-INF/native-image/com.google.cloud.firestore.v1/reflect-config.json index 08826c7267..21c64eb838 100644 --- a/google-cloud-firestore-admin/src/main/resources/META-INF/native-image/com.google.cloud.firestore.v1/reflect-config.json +++ b/google-cloud-firestore-admin/src/main/resources/META-INF/native-image/com.google.cloud.firestore.v1/reflect-config.json @@ -1601,6 +1601,96 @@ "allDeclaredClasses": true, "allPublicClasses": true }, + { + "name": "com.google.firestore.admin.v1.Index$IndexField$SearchConfig", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.firestore.admin.v1.Index$IndexField$SearchConfig$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.firestore.admin.v1.Index$IndexField$SearchConfig$SearchGeoSpec", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.firestore.admin.v1.Index$IndexField$SearchConfig$SearchGeoSpec$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.firestore.admin.v1.Index$IndexField$SearchConfig$SearchTextIndexSpec", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.firestore.admin.v1.Index$IndexField$SearchConfig$SearchTextIndexSpec$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.firestore.admin.v1.Index$IndexField$SearchConfig$SearchTextSpec", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.firestore.admin.v1.Index$IndexField$SearchConfig$SearchTextSpec$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.firestore.admin.v1.Index$IndexField$SearchConfig$TextIndexType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.firestore.admin.v1.Index$IndexField$SearchConfig$TextMatchType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, { "name": "com.google.firestore.admin.v1.Index$IndexField$VectorConfig", "queryAllDeclaredConstructors": true, @@ -1646,6 +1736,24 @@ "allDeclaredClasses": true, "allPublicClasses": true }, + { + "name": "com.google.firestore.admin.v1.Index$SearchIndexOptions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.firestore.admin.v1.Index$SearchIndexOptions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, { "name": "com.google.firestore.admin.v1.Index$State", "queryAllDeclaredConstructors": true, diff --git a/google-cloud-firestore-admin/src/test/java/com/google/cloud/firestore/v1/FirestoreAdminClientHttpJsonTest.java b/google-cloud-firestore-admin/src/test/java/com/google/cloud/firestore/v1/FirestoreAdminClientHttpJsonTest.java index 44befb935f..1b46bf54b4 100644 --- a/google-cloud-firestore-admin/src/test/java/com/google/cloud/firestore/v1/FirestoreAdminClientHttpJsonTest.java +++ b/google-cloud-firestore-admin/src/test/java/com/google/cloud/firestore/v1/FirestoreAdminClientHttpJsonTest.java @@ -121,6 +121,7 @@ public void createIndexTest() throws Exception { .setMultikey(true) .setShardCount(-495377042) .setUnique(true) + .setSearchIndexOptions(Index.SearchIndexOptions.newBuilder().build()) .build(); Operation resultOperation = Operation.newBuilder() @@ -177,6 +178,7 @@ public void createIndexTest2() throws Exception { .setMultikey(true) .setShardCount(-495377042) .setUnique(true) + .setSearchIndexOptions(Index.SearchIndexOptions.newBuilder().build()) .build(); Operation resultOperation = Operation.newBuilder() @@ -337,6 +339,7 @@ public void getIndexTest() throws Exception { .setMultikey(true) .setShardCount(-495377042) .setUnique(true) + .setSearchIndexOptions(Index.SearchIndexOptions.newBuilder().build()) .build(); mockService.addResponse(expectedResponse); @@ -385,6 +388,7 @@ public void getIndexTest2() throws Exception { .setMultikey(true) .setShardCount(-495377042) .setUnique(true) + .setSearchIndexOptions(Index.SearchIndexOptions.newBuilder().build()) .build(); mockService.addResponse(expectedResponse); diff --git a/google-cloud-firestore-admin/src/test/java/com/google/cloud/firestore/v1/FirestoreAdminClientTest.java b/google-cloud-firestore-admin/src/test/java/com/google/cloud/firestore/v1/FirestoreAdminClientTest.java index dc336081ba..bce23e457d 100644 --- a/google-cloud-firestore-admin/src/test/java/com/google/cloud/firestore/v1/FirestoreAdminClientTest.java +++ b/google-cloud-firestore-admin/src/test/java/com/google/cloud/firestore/v1/FirestoreAdminClientTest.java @@ -158,6 +158,7 @@ public void createIndexTest() throws Exception { .setMultikey(true) .setShardCount(-495377042) .setUnique(true) + .setSearchIndexOptions(Index.SearchIndexOptions.newBuilder().build()) .build(); Operation resultOperation = Operation.newBuilder() @@ -212,6 +213,7 @@ public void createIndexTest2() throws Exception { .setMultikey(true) .setShardCount(-495377042) .setUnique(true) + .setSearchIndexOptions(Index.SearchIndexOptions.newBuilder().build()) .build(); Operation resultOperation = Operation.newBuilder() @@ -354,6 +356,7 @@ public void getIndexTest() throws Exception { .setMultikey(true) .setShardCount(-495377042) .setUnique(true) + .setSearchIndexOptions(Index.SearchIndexOptions.newBuilder().build()) .build(); mockFirestoreAdmin.addResponse(expectedResponse); @@ -396,6 +399,7 @@ public void getIndexTest2() throws Exception { .setMultikey(true) .setShardCount(-495377042) .setUnique(true) + .setSearchIndexOptions(Index.SearchIndexOptions.newBuilder().build()) .build(); mockFirestoreAdmin.addResponse(expectedResponse); diff --git a/proto-google-cloud-firestore-admin-v1/src/main/java/com/google/firestore/admin/v1/Backup.java b/proto-google-cloud-firestore-admin-v1/src/main/java/com/google/firestore/admin/v1/Backup.java index 8d94821cb8..d0969ad151 100644 --- a/proto-google-cloud-firestore-admin-v1/src/main/java/com/google/firestore/admin/v1/Backup.java +++ b/proto-google-cloud-firestore-admin-v1/src/main/java/com/google/firestore/admin/v1/Backup.java @@ -1008,6 +1008,11 @@ public com.google.firestore.admin.v1.Backup.Stats getDefaultInstanceForType() { * Output only. The unique resource name of the Backup. * * Format is `projects/{project}/locations/{location}/backups/{backup}`. + * + * The location in the name will be the Standard Managed Multi-Region (SMMR) + * location (e.g. `us`) if the backup was created with an SMMR location, or + * the Google Managed Multi-Region (GMMR) location (e.g. `nam5`) if the backup + * was created with a GMMR location. * * * string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; @@ -1034,6 +1039,11 @@ public java.lang.String getName() { * Output only. The unique resource name of the Backup. * * Format is `projects/{project}/locations/{location}/backups/{backup}`. + * + * The location in the name will be the Standard Managed Multi-Region (SMMR) + * location (e.g. `us`) if the backup was created with an SMMR location, or + * the Google Managed Multi-Region (GMMR) location (e.g. `nam5`) if the backup + * was created with a GMMR location. * * * string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; @@ -1892,6 +1902,11 @@ public Builder mergeFrom( * Output only. The unique resource name of the Backup. * * Format is `projects/{project}/locations/{location}/backups/{backup}`. + * + * The location in the name will be the Standard Managed Multi-Region (SMMR) + * location (e.g. `us`) if the backup was created with an SMMR location, or + * the Google Managed Multi-Region (GMMR) location (e.g. `nam5`) if the backup + * was created with a GMMR location. * * * string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; @@ -1917,6 +1932,11 @@ public java.lang.String getName() { * Output only. The unique resource name of the Backup. * * Format is `projects/{project}/locations/{location}/backups/{backup}`. + * + * The location in the name will be the Standard Managed Multi-Region (SMMR) + * location (e.g. `us`) if the backup was created with an SMMR location, or + * the Google Managed Multi-Region (GMMR) location (e.g. `nam5`) if the backup + * was created with a GMMR location. * * * string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; @@ -1942,6 +1962,11 @@ public com.google.protobuf.ByteString getNameBytes() { * Output only. The unique resource name of the Backup. * * Format is `projects/{project}/locations/{location}/backups/{backup}`. + * + * The location in the name will be the Standard Managed Multi-Region (SMMR) + * location (e.g. `us`) if the backup was created with an SMMR location, or + * the Google Managed Multi-Region (GMMR) location (e.g. `nam5`) if the backup + * was created with a GMMR location. * * * string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; @@ -1966,6 +1991,11 @@ public Builder setName(java.lang.String value) { * Output only. The unique resource name of the Backup. * * Format is `projects/{project}/locations/{location}/backups/{backup}`. + * + * The location in the name will be the Standard Managed Multi-Region (SMMR) + * location (e.g. `us`) if the backup was created with an SMMR location, or + * the Google Managed Multi-Region (GMMR) location (e.g. `nam5`) if the backup + * was created with a GMMR location. * * * string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; @@ -1986,6 +2016,11 @@ public Builder clearName() { * Output only. The unique resource name of the Backup. * * Format is `projects/{project}/locations/{location}/backups/{backup}`. + * + * The location in the name will be the Standard Managed Multi-Region (SMMR) + * location (e.g. `us`) if the backup was created with an SMMR location, or + * the Google Managed Multi-Region (GMMR) location (e.g. `nam5`) if the backup + * was created with a GMMR location. * * * string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/proto-google-cloud-firestore-admin-v1/src/main/java/com/google/firestore/admin/v1/BackupOrBuilder.java b/proto-google-cloud-firestore-admin-v1/src/main/java/com/google/firestore/admin/v1/BackupOrBuilder.java index 693197231a..03c07884d1 100644 --- a/proto-google-cloud-firestore-admin-v1/src/main/java/com/google/firestore/admin/v1/BackupOrBuilder.java +++ b/proto-google-cloud-firestore-admin-v1/src/main/java/com/google/firestore/admin/v1/BackupOrBuilder.java @@ -33,6 +33,11 @@ public interface BackupOrBuilder * Output only. The unique resource name of the Backup. * * Format is `projects/{project}/locations/{location}/backups/{backup}`. + * + * The location in the name will be the Standard Managed Multi-Region (SMMR) + * location (e.g. `us`) if the backup was created with an SMMR location, or + * the Google Managed Multi-Region (GMMR) location (e.g. `nam5`) if the backup + * was created with a GMMR location. * * * string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; @@ -48,6 +53,11 @@ public interface BackupOrBuilder * Output only. The unique resource name of the Backup. * * Format is `projects/{project}/locations/{location}/backups/{backup}`. + * + * The location in the name will be the Standard Managed Multi-Region (SMMR) + * location (e.g. `us`) if the backup was created with an SMMR location, or + * the Google Managed Multi-Region (GMMR) location (e.g. `nam5`) if the backup + * was created with a GMMR location. * * * string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/proto-google-cloud-firestore-admin-v1/src/main/java/com/google/firestore/admin/v1/Index.java b/proto-google-cloud-firestore-admin-v1/src/main/java/com/google/firestore/admin/v1/Index.java index a584a05c5a..d42f116197 100644 --- a/proto-google-cloud-firestore-admin-v1/src/main/java/com/google/firestore/admin/v1/Index.java +++ b/proto-google-cloud-firestore-admin-v1/src/main/java/com/google/firestore/admin/v1/Index.java @@ -1124,6 +1124,49 @@ public interface IndexFieldOrBuilder */ com.google.firestore.admin.v1.Index.IndexField.VectorConfigOrBuilder getVectorConfigOrBuilder(); + /** + * + * + *
+     * Indicates that this field supports search operations. This field
+     * is only currently supported for indexes with MONGODB_COMPATIBLE_API
+     * ApiScope.
+     * 
+ * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig search_config = 5; + * + * @return Whether the searchConfig field is set. + */ + boolean hasSearchConfig(); + + /** + * + * + *
+     * Indicates that this field supports search operations. This field
+     * is only currently supported for indexes with MONGODB_COMPATIBLE_API
+     * ApiScope.
+     * 
+ * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig search_config = 5; + * + * @return The searchConfig. + */ + com.google.firestore.admin.v1.Index.IndexField.SearchConfig getSearchConfig(); + + /** + * + * + *
+     * Indicates that this field supports search operations. This field
+     * is only currently supported for indexes with MONGODB_COMPATIBLE_API
+     * ApiScope.
+     * 
+ * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig search_config = 5; + */ + com.google.firestore.admin.v1.Index.IndexField.SearchConfigOrBuilder getSearchConfigOrBuilder(); + com.google.firestore.admin.v1.Index.IndexField.ValueModeCase getValueModeCase(); } @@ -2877,291 +2920,6057 @@ public com.google.protobuf.Parser getParserForType() { } } - private int valueModeCase_ = 0; - - @SuppressWarnings("serial") - private java.lang.Object valueMode_; + public interface SearchConfigOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.firestore.admin.v1.Index.IndexField.SearchConfig) + com.google.protobuf.MessageOrBuilder { - public enum ValueModeCase - implements - com.google.protobuf.Internal.EnumLite, - com.google.protobuf.AbstractMessage.InternalOneOfEnum { - ORDER(2), - ARRAY_CONFIG(3), - VECTOR_CONFIG(4), - VALUEMODE_NOT_SET(0); - private final int value; + /** + * + * + *
+       * Optional. The specification for building a text search index for a
+       * field.
+       * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec text_spec = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the textSpec field is set. + */ + boolean hasTextSpec(); - private ValueModeCase(int value) { - this.value = value; - } + /** + * + * + *
+       * Optional. The specification for building a text search index for a
+       * field.
+       * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec text_spec = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The textSpec. + */ + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec getTextSpec(); /** - * @param value The number of the enum to look for. - * @return The enum associated with the given number. - * @deprecated Use {@link #forNumber(int)} instead. + * + * + *
+       * Optional. The specification for building a text search index for a
+       * field.
+       * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec text_spec = 1 [(.google.api.field_behavior) = OPTIONAL]; + * */ - @java.lang.Deprecated - public static ValueModeCase valueOf(int value) { - return forNumber(value); - } + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpecOrBuilder + getTextSpecOrBuilder(); - public static ValueModeCase forNumber(int value) { - switch (value) { - case 2: - return ORDER; - case 3: - return ARRAY_CONFIG; - case 4: - return VECTOR_CONFIG; - case 0: - return VALUEMODE_NOT_SET; - default: - return null; - } - } + /** + * + * + *
+       * Optional. The specification for building a geo search index for a
+       * field.
+       * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec geo_spec = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the geoSpec field is set. + */ + boolean hasGeoSpec(); - public int getNumber() { - return this.value; - } - }; + /** + * + * + *
+       * Optional. The specification for building a geo search index for a
+       * field.
+       * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec geo_spec = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The geoSpec. + */ + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec getGeoSpec(); - public ValueModeCase getValueModeCase() { - return ValueModeCase.forNumber(valueModeCase_); + /** + * + * + *
+       * Optional. The specification for building a geo search index for a
+       * field.
+       * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec geo_spec = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpecOrBuilder + getGeoSpecOrBuilder(); } - public static final int FIELD_PATH_FIELD_NUMBER = 1; - - @SuppressWarnings("serial") - private volatile java.lang.Object fieldPath_ = ""; - /** * * *
-     * Can be __name__.
-     * For single field indexes, this must match the name of the field or may
-     * be omitted.
+     * The configuration for how to index a field for search.
      * 
* - * string field_path = 1; - * - * @return The fieldPath. + * Protobuf type {@code google.firestore.admin.v1.Index.IndexField.SearchConfig} */ - @java.lang.Override - public java.lang.String getFieldPath() { - java.lang.Object ref = fieldPath_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - fieldPath_ = s; - return s; - } - } + public static final class SearchConfig extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.firestore.admin.v1.Index.IndexField.SearchConfig) + SearchConfigOrBuilder { + private static final long serialVersionUID = 0L; - /** - * - * - *
-     * Can be __name__.
-     * For single field indexes, this must match the name of the field or may
-     * be omitted.
-     * 
- * - * string field_path = 1; - * - * @return The bytes for fieldPath. - */ - @java.lang.Override - public com.google.protobuf.ByteString getFieldPathBytes() { - java.lang.Object ref = fieldPath_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - fieldPath_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "SearchConfig"); } - } - public static final int ORDER_FIELD_NUMBER = 2; + // Use SearchConfig.newBuilder() to construct. + private SearchConfig(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } - /** - * - * - *
-     * Indicates that this field supports ordering by the specified order or
-     * comparing using =, !=, <, <=, >, >=.
-     * 
- * - * .google.firestore.admin.v1.Index.IndexField.Order order = 2; - * - * @return Whether the order field is set. - */ - public boolean hasOrder() { - return valueModeCase_ == 2; - } + private SearchConfig() {} - /** - * - * - *
-     * Indicates that this field supports ordering by the specified order or
-     * comparing using =, !=, <, <=, >, >=.
-     * 
- * - * .google.firestore.admin.v1.Index.IndexField.Order order = 2; - * - * @return The enum numeric value on the wire for order. - */ - public int getOrderValue() { - if (valueModeCase_ == 2) { - return (java.lang.Integer) valueMode_; + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_descriptor; } - return 0; - } - /** - * - * - *
-     * Indicates that this field supports ordering by the specified order or
-     * comparing using =, !=, <, <=, >, >=.
-     * 
- * - * .google.firestore.admin.v1.Index.IndexField.Order order = 2; - * - * @return The order. - */ - public com.google.firestore.admin.v1.Index.IndexField.Order getOrder() { - if (valueModeCase_ == 2) { - com.google.firestore.admin.v1.Index.IndexField.Order result = - com.google.firestore.admin.v1.Index.IndexField.Order.forNumber( - (java.lang.Integer) valueMode_); - return result == null - ? com.google.firestore.admin.v1.Index.IndexField.Order.UNRECOGNIZED - : result; + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.class, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.Builder.class); } - return com.google.firestore.admin.v1.Index.IndexField.Order.ORDER_UNSPECIFIED; - } - - public static final int ARRAY_CONFIG_FIELD_NUMBER = 3; - - /** - * - * - *
-     * Indicates that this field supports operations on `array_value`s.
-     * 
- * - * .google.firestore.admin.v1.Index.IndexField.ArrayConfig array_config = 3; - * - * @return Whether the arrayConfig field is set. - */ - public boolean hasArrayConfig() { - return valueModeCase_ == 3; - } - /** - * - * - *
+      /**
+       *
+       *
+       * 
+       * Ways to index the text field value.
+       * 
+ * + * Protobuf enum {@code google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType} + */ + public enum TextIndexType implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+         * The index type is unspecified. Not a valid option.
+         * 
+ * + * TEXT_INDEX_TYPE_UNSPECIFIED = 0; + */ + TEXT_INDEX_TYPE_UNSPECIFIED(0), + /** + * + * + *
+         * Field values are tokenized. This is the only way currently supported
+         * for MONGODB_COMPATIBLE_API.
+         * 
+ * + * TOKENIZED = 1; + */ + TOKENIZED(1), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "TextIndexType"); + } + + /** + * + * + *
+         * The index type is unspecified. Not a valid option.
+         * 
+ * + * TEXT_INDEX_TYPE_UNSPECIFIED = 0; + */ + public static final int TEXT_INDEX_TYPE_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+         * Field values are tokenized. This is the only way currently supported
+         * for MONGODB_COMPATIBLE_API.
+         * 
+ * + * TOKENIZED = 1; + */ + public static final int TOKENIZED_VALUE = 1; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static TextIndexType valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static TextIndexType forNumber(int value) { + switch (value) { + case 0: + return TEXT_INDEX_TYPE_UNSPECIFIED; + case 1: + return TOKENIZED; + default: + return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + + private static final com.google.protobuf.Internal.EnumLiteMap + internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public TextIndexType findValueByNumber(int number) { + return TextIndexType.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } + + public static com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.firestore.admin.v1.Index.IndexField.SearchConfig.getDescriptor() + .getEnumTypes() + .get(0); + } + + private static final TextIndexType[] VALUES = values(); + + public static TextIndexType valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private TextIndexType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType) + } + + /** + * + * + *
+       * Types of text matches that are supported for the
+       * field.
+       * 
+ * + * Protobuf enum {@code google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType} + */ + public enum TextMatchType implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+         * The match type is unspecified. Not a valid option.
+         * 
+ * + * TEXT_MATCH_TYPE_UNSPECIFIED = 0; + */ + TEXT_MATCH_TYPE_UNSPECIFIED(0), + /** + * + * + *
+         * Match on any indexed field. This is the only way currently supported
+         * for MONGODB_COMPATIBLE_API.
+         * 
+ * + * MATCH_GLOBALLY = 1; + */ + MATCH_GLOBALLY(1), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "TextMatchType"); + } + + /** + * + * + *
+         * The match type is unspecified. Not a valid option.
+         * 
+ * + * TEXT_MATCH_TYPE_UNSPECIFIED = 0; + */ + public static final int TEXT_MATCH_TYPE_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+         * Match on any indexed field. This is the only way currently supported
+         * for MONGODB_COMPATIBLE_API.
+         * 
+ * + * MATCH_GLOBALLY = 1; + */ + public static final int MATCH_GLOBALLY_VALUE = 1; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static TextMatchType valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static TextMatchType forNumber(int value) { + switch (value) { + case 0: + return TEXT_MATCH_TYPE_UNSPECIFIED; + case 1: + return MATCH_GLOBALLY; + default: + return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + + private static final com.google.protobuf.Internal.EnumLiteMap + internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public TextMatchType findValueByNumber(int number) { + return TextMatchType.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } + + public static com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.firestore.admin.v1.Index.IndexField.SearchConfig.getDescriptor() + .getEnumTypes() + .get(1); + } + + private static final TextMatchType[] VALUES = values(); + + public static TextMatchType valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private TextMatchType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType) + } + + public interface SearchTextIndexSpecOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+         * Required. How to index the text field value.
+         * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType index_type = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The enum numeric value on the wire for indexType. + */ + int getIndexTypeValue(); + + /** + * + * + *
+         * Required. How to index the text field value.
+         * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType index_type = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The indexType. + */ + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType getIndexType(); + + /** + * + * + *
+         * Required. How to match the text field value.
+         * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType match_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The enum numeric value on the wire for matchType. + */ + int getMatchTypeValue(); + + /** + * + * + *
+         * Required. How to match the text field value.
+         * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType match_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The matchType. + */ + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType getMatchType(); + } + + /** + * + * + *
+       * Specification of how the field should be indexed for search text
+       * indexes.
+       * 
+ * + * Protobuf type {@code + * google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec} + */ + public static final class SearchTextIndexSpec extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec) + SearchTextIndexSpecOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "SearchTextIndexSpec"); + } + + // Use SearchTextIndexSpec.newBuilder() to construct. + private SearchTextIndexSpec(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private SearchTextIndexSpec() { + indexType_ = 0; + matchType_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchTextIndexSpec_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchTextIndexSpec_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + .class, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + .Builder.class); + } + + public static final int INDEX_TYPE_FIELD_NUMBER = 1; + private int indexType_ = 0; + + /** + * + * + *
+         * Required. How to index the text field value.
+         * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType index_type = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The enum numeric value on the wire for indexType. + */ + @java.lang.Override + public int getIndexTypeValue() { + return indexType_; + } + + /** + * + * + *
+         * Required. How to index the text field value.
+         * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType index_type = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The indexType. + */ + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType + getIndexType() { + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType result = + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType.forNumber( + indexType_); + return result == null + ? com.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType + .UNRECOGNIZED + : result; + } + + public static final int MATCH_TYPE_FIELD_NUMBER = 2; + private int matchType_ = 0; + + /** + * + * + *
+         * Required. How to match the text field value.
+         * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType match_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The enum numeric value on the wire for matchType. + */ + @java.lang.Override + public int getMatchTypeValue() { + return matchType_; + } + + /** + * + * + *
+         * Required. How to match the text field value.
+         * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType match_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The matchType. + */ + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType + getMatchType() { + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType result = + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType.forNumber( + matchType_); + return result == null + ? com.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType + .UNRECOGNIZED + : result; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (indexType_ + != com.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType + .TEXT_INDEX_TYPE_UNSPECIFIED + .getNumber()) { + output.writeEnum(1, indexType_); + } + if (matchType_ + != com.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType + .TEXT_MATCH_TYPE_UNSPECIFIED + .getNumber()) { + output.writeEnum(2, matchType_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (indexType_ + != com.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType + .TEXT_INDEX_TYPE_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, indexType_); + } + if (matchType_ + != com.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType + .TEXT_MATCH_TYPE_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, matchType_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj + instanceof + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec)) { + return super.equals(obj); + } + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec other = + (com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec) obj; + + if (indexType_ != other.indexType_) return false; + if (matchType_ != other.matchType_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + INDEX_TYPE_FIELD_NUMBER; + hash = (53 * hash) + indexType_; + hash = (37 * hash) + MATCH_TYPE_FIELD_NUMBER; + hash = (53 * hash) + matchType_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpec + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpec + parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpec + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpec + parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpec + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpec + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpec + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpec + parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpec + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpec + parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpec + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpec + parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+         * Specification of how the field should be indexed for search text
+         * indexes.
+         * 
+ * + * Protobuf type {@code + * google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec) + com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpecOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchTextIndexSpec_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchTextIndexSpec_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + .class, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + .Builder.class); + } + + // Construct using + // com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + indexType_ = 0; + matchType_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchTextIndexSpec_descriptor; + } + + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + getDefaultInstanceForType() { + return com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + build() { + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + buildPartial() { + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec result = + new com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec( + this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.indexType_ = indexType_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.matchType_ = matchType_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other + instanceof + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec) { + return mergeFrom( + (com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec) + other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + other) { + if (other + == com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + .getDefaultInstance()) return this; + if (other.indexType_ != 0) { + setIndexTypeValue(other.getIndexTypeValue()); + } + if (other.matchType_ != 0) { + setMatchTypeValue(other.getMatchTypeValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: + { + indexType_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: + { + matchType_ = input.readEnum(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private int indexType_ = 0; + + /** + * + * + *
+           * Required. How to index the text field value.
+           * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType index_type = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The enum numeric value on the wire for indexType. + */ + @java.lang.Override + public int getIndexTypeValue() { + return indexType_; + } + + /** + * + * + *
+           * Required. How to index the text field value.
+           * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType index_type = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @param value The enum numeric value on the wire for indexType to set. + * @return This builder for chaining. + */ + public Builder setIndexTypeValue(int value) { + indexType_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+           * Required. How to index the text field value.
+           * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType index_type = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The indexType. + */ + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType + getIndexType() { + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType result = + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType.forNumber( + indexType_); + return result == null + ? com.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType + .UNRECOGNIZED + : result; + } + + /** + * + * + *
+           * Required. How to index the text field value.
+           * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType index_type = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @param value The indexType to set. + * @return This builder for chaining. + */ + public Builder setIndexType( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + indexType_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+           * Required. How to index the text field value.
+           * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType index_type = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return This builder for chaining. + */ + public Builder clearIndexType() { + bitField0_ = (bitField0_ & ~0x00000001); + indexType_ = 0; + onChanged(); + return this; + } + + private int matchType_ = 0; + + /** + * + * + *
+           * Required. How to match the text field value.
+           * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType match_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The enum numeric value on the wire for matchType. + */ + @java.lang.Override + public int getMatchTypeValue() { + return matchType_; + } + + /** + * + * + *
+           * Required. How to match the text field value.
+           * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType match_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @param value The enum numeric value on the wire for matchType to set. + * @return This builder for chaining. + */ + public Builder setMatchTypeValue(int value) { + matchType_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+           * Required. How to match the text field value.
+           * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType match_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The matchType. + */ + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType + getMatchType() { + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType result = + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType.forNumber( + matchType_); + return result == null + ? com.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType + .UNRECOGNIZED + : result; + } + + /** + * + * + *
+           * Required. How to match the text field value.
+           * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType match_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @param value The matchType to set. + * @return This builder for chaining. + */ + public Builder setMatchType( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + matchType_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+           * Required. How to match the text field value.
+           * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType match_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return This builder for chaining. + */ + public Builder clearMatchType() { + bitField0_ = (bitField0_ & ~0x00000002); + matchType_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec) + } + + // @@protoc_insertion_point(class_scope:google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec) + private static final com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpec + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec(); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpec + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SearchTextIndexSpec parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException() + .setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface SearchTextSpecOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+         * Required. Specifications for how the field should be indexed.
+         * Repeated so that the field can be indexed in multiple ways.
+         * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + java.util.List< + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec> + getIndexSpecsList(); + + /** + * + * + *
+         * Required. Specifications for how the field should be indexed.
+         * Repeated so that the field can be indexed in multiple ways.
+         * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + getIndexSpecs(int index); + + /** + * + * + *
+         * Required. Specifications for how the field should be indexed.
+         * Repeated so that the field can be indexed in multiple ways.
+         * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + int getIndexSpecsCount(); + + /** + * + * + *
+         * Required. Specifications for how the field should be indexed.
+         * Repeated so that the field can be indexed in multiple ways.
+         * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + java.util.List< + ? extends + com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpecOrBuilder> + getIndexSpecsOrBuilderList(); + + /** + * + * + *
+         * Required. Specifications for how the field should be indexed.
+         * Repeated so that the field can be indexed in multiple ways.
+         * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpecOrBuilder + getIndexSpecsOrBuilder(int index); + } + + /** + * + * + *
+       * The specification for how to build a text search index for a field.
+       * 
+ * + * Protobuf type {@code + * google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec} + */ + public static final class SearchTextSpec extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec) + SearchTextSpecOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "SearchTextSpec"); + } + + // Use SearchTextSpec.newBuilder() to construct. + private SearchTextSpec(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private SearchTextSpec() { + indexSpecs_ = java.util.Collections.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchTextSpec_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchTextSpec_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec.class, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec.Builder + .class); + } + + public static final int INDEX_SPECS_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List< + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec> + indexSpecs_; + + /** + * + * + *
+         * Required. Specifications for how the field should be indexed.
+         * Repeated so that the field can be indexed in multiple ways.
+         * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + @java.lang.Override + public java.util.List< + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec> + getIndexSpecsList() { + return indexSpecs_; + } + + /** + * + * + *
+         * Required. Specifications for how the field should be indexed.
+         * Repeated so that the field can be indexed in multiple ways.
+         * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + @java.lang.Override + public java.util.List< + ? extends + com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpecOrBuilder> + getIndexSpecsOrBuilderList() { + return indexSpecs_; + } + + /** + * + * + *
+         * Required. Specifications for how the field should be indexed.
+         * Repeated so that the field can be indexed in multiple ways.
+         * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + @java.lang.Override + public int getIndexSpecsCount() { + return indexSpecs_.size(); + } + + /** + * + * + *
+         * Required. Specifications for how the field should be indexed.
+         * Repeated so that the field can be indexed in multiple ways.
+         * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + getIndexSpecs(int index) { + return indexSpecs_.get(index); + } + + /** + * + * + *
+         * Required. Specifications for how the field should be indexed.
+         * Repeated so that the field can be indexed in multiple ways.
+         * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpecOrBuilder + getIndexSpecsOrBuilder(int index) { + return indexSpecs_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < indexSpecs_.size(); i++) { + output.writeMessage(1, indexSpecs_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < indexSpecs_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, indexSpecs_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj + instanceof + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec)) { + return super.equals(obj); + } + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec other = + (com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec) obj; + + if (!getIndexSpecsList().equals(other.getIndexSpecsList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getIndexSpecsCount() > 0) { + hash = (37 * hash) + INDEX_SPECS_FIELD_NUMBER; + hash = (53 * hash) + getIndexSpecsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+         * The specification for how to build a text search index for a field.
+         * 
+ * + * Protobuf type {@code + * google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec) + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpecOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchTextSpec_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchTextSpec_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + .class, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + .Builder.class); + } + + // Construct using + // com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (indexSpecsBuilder_ == null) { + indexSpecs_ = java.util.Collections.emptyList(); + } else { + indexSpecs_ = null; + indexSpecsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchTextSpec_descriptor; + } + + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + getDefaultInstanceForType() { + return com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + build() { + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + buildPartial() { + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec result = + new com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec( + this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec result) { + if (indexSpecsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + indexSpecs_ = java.util.Collections.unmodifiableList(indexSpecs_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.indexSpecs_ = indexSpecs_; + } else { + result.indexSpecs_ = indexSpecsBuilder_.build(); + } + } + + private void buildPartial0( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other + instanceof + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec) { + return mergeFrom( + (com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec) + other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec other) { + if (other + == com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + .getDefaultInstance()) return this; + if (indexSpecsBuilder_ == null) { + if (!other.indexSpecs_.isEmpty()) { + if (indexSpecs_.isEmpty()) { + indexSpecs_ = other.indexSpecs_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureIndexSpecsIsMutable(); + indexSpecs_.addAll(other.indexSpecs_); + } + onChanged(); + } + } else { + if (!other.indexSpecs_.isEmpty()) { + if (indexSpecsBuilder_.isEmpty()) { + indexSpecsBuilder_.dispose(); + indexSpecsBuilder_ = null; + indexSpecs_ = other.indexSpecs_; + bitField0_ = (bitField0_ & ~0x00000001); + indexSpecsBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders + ? internalGetIndexSpecsFieldBuilder() + : null; + } else { + indexSpecsBuilder_.addAllMessages(other.indexSpecs_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpec + m = + input.readMessage( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpec.parser(), + extensionRegistry); + if (indexSpecsBuilder_ == null) { + ensureIndexSpecsIsMutable(); + indexSpecs_.add(m); + } else { + indexSpecsBuilder_.addMessage(m); + } + break; + } // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private java.util.List< + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec> + indexSpecs_ = java.util.Collections.emptyList(); + + private void ensureIndexSpecsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + indexSpecs_ = + new java.util.ArrayList< + com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpec>(indexSpecs_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + .Builder, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpecOrBuilder> + indexSpecsBuilder_; + + /** + * + * + *
+           * Required. Specifications for how the field should be indexed.
+           * Repeated so that the field can be indexed in multiple ways.
+           * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public java.util.List< + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec> + getIndexSpecsList() { + if (indexSpecsBuilder_ == null) { + return java.util.Collections.unmodifiableList(indexSpecs_); + } else { + return indexSpecsBuilder_.getMessageList(); + } + } + + /** + * + * + *
+           * Required. Specifications for how the field should be indexed.
+           * Repeated so that the field can be indexed in multiple ways.
+           * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public int getIndexSpecsCount() { + if (indexSpecsBuilder_ == null) { + return indexSpecs_.size(); + } else { + return indexSpecsBuilder_.getCount(); + } + } + + /** + * + * + *
+           * Required. Specifications for how the field should be indexed.
+           * Repeated so that the field can be indexed in multiple ways.
+           * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + getIndexSpecs(int index) { + if (indexSpecsBuilder_ == null) { + return indexSpecs_.get(index); + } else { + return indexSpecsBuilder_.getMessage(index); + } + } + + /** + * + * + *
+           * Required. Specifications for how the field should be indexed.
+           * Repeated so that the field can be indexed in multiple ways.
+           * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder setIndexSpecs( + int index, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + value) { + if (indexSpecsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureIndexSpecsIsMutable(); + indexSpecs_.set(index, value); + onChanged(); + } else { + indexSpecsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * + * + *
+           * Required. Specifications for how the field should be indexed.
+           * Repeated so that the field can be indexed in multiple ways.
+           * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder setIndexSpecs( + int index, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + .Builder + builderForValue) { + if (indexSpecsBuilder_ == null) { + ensureIndexSpecsIsMutable(); + indexSpecs_.set(index, builderForValue.build()); + onChanged(); + } else { + indexSpecsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+           * Required. Specifications for how the field should be indexed.
+           * Repeated so that the field can be indexed in multiple ways.
+           * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder addIndexSpecs( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + value) { + if (indexSpecsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureIndexSpecsIsMutable(); + indexSpecs_.add(value); + onChanged(); + } else { + indexSpecsBuilder_.addMessage(value); + } + return this; + } + + /** + * + * + *
+           * Required. Specifications for how the field should be indexed.
+           * Repeated so that the field can be indexed in multiple ways.
+           * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder addIndexSpecs( + int index, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + value) { + if (indexSpecsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureIndexSpecsIsMutable(); + indexSpecs_.add(index, value); + onChanged(); + } else { + indexSpecsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * + * + *
+           * Required. Specifications for how the field should be indexed.
+           * Repeated so that the field can be indexed in multiple ways.
+           * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder addIndexSpecs( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + .Builder + builderForValue) { + if (indexSpecsBuilder_ == null) { + ensureIndexSpecsIsMutable(); + indexSpecs_.add(builderForValue.build()); + onChanged(); + } else { + indexSpecsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * + * + *
+           * Required. Specifications for how the field should be indexed.
+           * Repeated so that the field can be indexed in multiple ways.
+           * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder addIndexSpecs( + int index, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + .Builder + builderForValue) { + if (indexSpecsBuilder_ == null) { + ensureIndexSpecsIsMutable(); + indexSpecs_.add(index, builderForValue.build()); + onChanged(); + } else { + indexSpecsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+           * Required. Specifications for how the field should be indexed.
+           * Repeated so that the field can be indexed in multiple ways.
+           * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder addAllIndexSpecs( + java.lang.Iterable< + ? extends + com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpec> + values) { + if (indexSpecsBuilder_ == null) { + ensureIndexSpecsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, indexSpecs_); + onChanged(); + } else { + indexSpecsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * + * + *
+           * Required. Specifications for how the field should be indexed.
+           * Repeated so that the field can be indexed in multiple ways.
+           * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder clearIndexSpecs() { + if (indexSpecsBuilder_ == null) { + indexSpecs_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + indexSpecsBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+           * Required. Specifications for how the field should be indexed.
+           * Repeated so that the field can be indexed in multiple ways.
+           * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder removeIndexSpecs(int index) { + if (indexSpecsBuilder_ == null) { + ensureIndexSpecsIsMutable(); + indexSpecs_.remove(index); + onChanged(); + } else { + indexSpecsBuilder_.remove(index); + } + return this; + } + + /** + * + * + *
+           * Required. Specifications for how the field should be indexed.
+           * Repeated so that the field can be indexed in multiple ways.
+           * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + .Builder + getIndexSpecsBuilder(int index) { + return internalGetIndexSpecsFieldBuilder().getBuilder(index); + } + + /** + * + * + *
+           * Required. Specifications for how the field should be indexed.
+           * Repeated so that the field can be indexed in multiple ways.
+           * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpecOrBuilder + getIndexSpecsOrBuilder(int index) { + if (indexSpecsBuilder_ == null) { + return indexSpecs_.get(index); + } else { + return indexSpecsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * + * + *
+           * Required. Specifications for how the field should be indexed.
+           * Repeated so that the field can be indexed in multiple ways.
+           * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public java.util.List< + ? extends + com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpecOrBuilder> + getIndexSpecsOrBuilderList() { + if (indexSpecsBuilder_ != null) { + return indexSpecsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(indexSpecs_); + } + } + + /** + * + * + *
+           * Required. Specifications for how the field should be indexed.
+           * Repeated so that the field can be indexed in multiple ways.
+           * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + .Builder + addIndexSpecsBuilder() { + return internalGetIndexSpecsFieldBuilder() + .addBuilder( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + .getDefaultInstance()); + } + + /** + * + * + *
+           * Required. Specifications for how the field should be indexed.
+           * Repeated so that the field can be indexed in multiple ways.
+           * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + .Builder + addIndexSpecsBuilder(int index) { + return internalGetIndexSpecsFieldBuilder() + .addBuilder( + index, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + .getDefaultInstance()); + } + + /** + * + * + *
+           * Required. Specifications for how the field should be indexed.
+           * Repeated so that the field can be indexed in multiple ways.
+           * 
+ * + * + * repeated .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec index_specs = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public java.util.List< + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + .Builder> + getIndexSpecsBuilderList() { + return internalGetIndexSpecsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec + .Builder, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpecOrBuilder> + internalGetIndexSpecsFieldBuilder() { + if (indexSpecsBuilder_ == null) { + indexSpecsBuilder_ = + new com.google.protobuf.RepeatedFieldBuilder< + com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpec, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpec.Builder, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextIndexSpecOrBuilder>( + indexSpecs_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + indexSpecs_ = null; + } + return indexSpecsBuilder_; + } + + // @@protoc_insertion_point(builder_scope:google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec) + } + + // @@protoc_insertion_point(class_scope:google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec) + private static final com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextSpec + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec(); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SearchTextSpec parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException() + .setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface SearchGeoSpecOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+         * Optional. Disables geoJSON indexing for the field. By default,
+         * geoJSON points are indexed.
+         * 
+ * + * bool geo_json_indexing_disabled = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The geoJsonIndexingDisabled. + */ + boolean getGeoJsonIndexingDisabled(); + } + + /** + * + * + *
+       * The specification for how to build a geo search index for a field.
+       * 
+ * + * Protobuf type {@code google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec} + */ + public static final class SearchGeoSpec extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec) + SearchGeoSpecOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "SearchGeoSpec"); + } + + // Use SearchGeoSpec.newBuilder() to construct. + private SearchGeoSpec(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private SearchGeoSpec() {} + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchGeoSpec_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchGeoSpec_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec.class, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec.Builder + .class); + } + + public static final int GEO_JSON_INDEXING_DISABLED_FIELD_NUMBER = 1; + private boolean geoJsonIndexingDisabled_ = false; + + /** + * + * + *
+         * Optional. Disables geoJSON indexing for the field. By default,
+         * geoJSON points are indexed.
+         * 
+ * + * bool geo_json_indexing_disabled = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The geoJsonIndexingDisabled. + */ + @java.lang.Override + public boolean getGeoJsonIndexingDisabled() { + return geoJsonIndexingDisabled_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (geoJsonIndexingDisabled_ != false) { + output.writeBool(1, geoJsonIndexingDisabled_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (geoJsonIndexingDisabled_ != false) { + size += + com.google.protobuf.CodedOutputStream.computeBoolSize(1, geoJsonIndexingDisabled_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj + instanceof + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec)) { + return super.equals(obj); + } + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec other = + (com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec) obj; + + if (getGeoJsonIndexingDisabled() != other.getGeoJsonIndexingDisabled()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + GEO_JSON_INDEXING_DISABLED_FIELD_NUMBER; + hash = + (53 * hash) + com.google.protobuf.Internal.hashBoolean(getGeoJsonIndexingDisabled()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+         * The specification for how to build a geo search index for a field.
+         * 
+ * + * Protobuf type {@code + * google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec) + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpecOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchGeoSpec_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchGeoSpec_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec.class, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + .Builder.class); + } + + // Construct using + // com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + geoJsonIndexingDisabled_ = false; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchGeoSpec_descriptor; + } + + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + getDefaultInstanceForType() { + return com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec build() { + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + buildPartial() { + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec result = + new com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.geoJsonIndexingDisabled_ = geoJsonIndexingDisabled_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other + instanceof + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec) { + return mergeFrom( + (com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec) + other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec other) { + if (other + == com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + .getDefaultInstance()) return this; + if (other.getGeoJsonIndexingDisabled() != false) { + setGeoJsonIndexingDisabled(other.getGeoJsonIndexingDisabled()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: + { + geoJsonIndexingDisabled_ = input.readBool(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private boolean geoJsonIndexingDisabled_; + + /** + * + * + *
+           * Optional. Disables geoJSON indexing for the field. By default,
+           * geoJSON points are indexed.
+           * 
+ * + * bool geo_json_indexing_disabled = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The geoJsonIndexingDisabled. + */ + @java.lang.Override + public boolean getGeoJsonIndexingDisabled() { + return geoJsonIndexingDisabled_; + } + + /** + * + * + *
+           * Optional. Disables geoJSON indexing for the field. By default,
+           * geoJSON points are indexed.
+           * 
+ * + * bool geo_json_indexing_disabled = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @param value The geoJsonIndexingDisabled to set. + * @return This builder for chaining. + */ + public Builder setGeoJsonIndexingDisabled(boolean value) { + + geoJsonIndexingDisabled_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+           * Optional. Disables geoJSON indexing for the field. By default,
+           * geoJSON points are indexed.
+           * 
+ * + * bool geo_json_indexing_disabled = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return This builder for chaining. + */ + public Builder clearGeoJsonIndexingDisabled() { + bitField0_ = (bitField0_ & ~0x00000001); + geoJsonIndexingDisabled_ = false; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec) + } + + // @@protoc_insertion_point(class_scope:google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec) + private static final com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchGeoSpec + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec(); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SearchGeoSpec parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException() + .setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + private int bitField0_; + public static final int TEXT_SPEC_FIELD_NUMBER = 1; + private com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec textSpec_; + + /** + * + * + *
+       * Optional. The specification for building a text search index for a
+       * field.
+       * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec text_spec = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the textSpec field is set. + */ + @java.lang.Override + public boolean hasTextSpec() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+       * Optional. The specification for building a text search index for a
+       * field.
+       * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec text_spec = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The textSpec. + */ + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + getTextSpec() { + return textSpec_ == null + ? com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + .getDefaultInstance() + : textSpec_; + } + + /** + * + * + *
+       * Optional. The specification for building a text search index for a
+       * field.
+       * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec text_spec = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpecOrBuilder + getTextSpecOrBuilder() { + return textSpec_ == null + ? com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + .getDefaultInstance() + : textSpec_; + } + + public static final int GEO_SPEC_FIELD_NUMBER = 2; + private com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec geoSpec_; + + /** + * + * + *
+       * Optional. The specification for building a geo search index for a
+       * field.
+       * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec geo_spec = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the geoSpec field is set. + */ + @java.lang.Override + public boolean hasGeoSpec() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+       * Optional. The specification for building a geo search index for a
+       * field.
+       * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec geo_spec = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The geoSpec. + */ + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + getGeoSpec() { + return geoSpec_ == null + ? com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + .getDefaultInstance() + : geoSpec_; + } + + /** + * + * + *
+       * Optional. The specification for building a geo search index for a
+       * field.
+       * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec geo_spec = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpecOrBuilder + getGeoSpecOrBuilder() { + return geoSpec_ == null + ? com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + .getDefaultInstance() + : geoSpec_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(1, getTextSpec()); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeMessage(2, getGeoSpec()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getTextSpec()); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getGeoSpec()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.firestore.admin.v1.Index.IndexField.SearchConfig)) { + return super.equals(obj); + } + com.google.firestore.admin.v1.Index.IndexField.SearchConfig other = + (com.google.firestore.admin.v1.Index.IndexField.SearchConfig) obj; + + if (hasTextSpec() != other.hasTextSpec()) return false; + if (hasTextSpec()) { + if (!getTextSpec().equals(other.getTextSpec())) return false; + } + if (hasGeoSpec() != other.hasGeoSpec()) return false; + if (hasGeoSpec()) { + if (!getGeoSpec().equals(other.getGeoSpec())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasTextSpec()) { + hash = (37 * hash) + TEXT_SPEC_FIELD_NUMBER; + hash = (53 * hash) + getTextSpec().hashCode(); + } + if (hasGeoSpec()) { + hash = (37 * hash) + GEO_SPEC_FIELD_NUMBER; + hash = (53 * hash) + getGeoSpec().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+       * The configuration for how to index a field for search.
+       * 
+ * + * Protobuf type {@code google.firestore.admin.v1.Index.IndexField.SearchConfig} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.firestore.admin.v1.Index.IndexField.SearchConfig) + com.google.firestore.admin.v1.Index.IndexField.SearchConfigOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.class, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.Builder.class); + } + + // Construct using com.google.firestore.admin.v1.Index.IndexField.SearchConfig.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + internalGetTextSpecFieldBuilder(); + internalGetGeoSpecFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + textSpec_ = null; + if (textSpecBuilder_ != null) { + textSpecBuilder_.dispose(); + textSpecBuilder_ = null; + } + geoSpec_ = null; + if (geoSpecBuilder_ != null) { + geoSpecBuilder_.dispose(); + geoSpecBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_descriptor; + } + + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig + getDefaultInstanceForType() { + return com.google.firestore.admin.v1.Index.IndexField.SearchConfig.getDefaultInstance(); + } + + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig build() { + com.google.firestore.admin.v1.Index.IndexField.SearchConfig result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig buildPartial() { + com.google.firestore.admin.v1.Index.IndexField.SearchConfig result = + new com.google.firestore.admin.v1.Index.IndexField.SearchConfig(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.textSpec_ = textSpecBuilder_ == null ? textSpec_ : textSpecBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.geoSpec_ = geoSpecBuilder_ == null ? geoSpec_ : geoSpecBuilder_.build(); + to_bitField0_ |= 0x00000002; + } + result.bitField0_ |= to_bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.firestore.admin.v1.Index.IndexField.SearchConfig) { + return mergeFrom((com.google.firestore.admin.v1.Index.IndexField.SearchConfig) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig other) { + if (other + == com.google.firestore.admin.v1.Index.IndexField.SearchConfig.getDefaultInstance()) + return this; + if (other.hasTextSpec()) { + mergeTextSpec(other.getTextSpec()); + } + if (other.hasGeoSpec()) { + mergeGeoSpec(other.getGeoSpec()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage( + internalGetTextSpecFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + input.readMessage( + internalGetGeoSpecFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + textSpec_; + private com.google.protobuf.SingleFieldBuilder< + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec.Builder, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpecOrBuilder> + textSpecBuilder_; + + /** + * + * + *
+         * Optional. The specification for building a text search index for a
+         * field.
+         * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec text_spec = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the textSpec field is set. + */ + public boolean hasTextSpec() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+         * Optional. The specification for building a text search index for a
+         * field.
+         * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec text_spec = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The textSpec. + */ + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + getTextSpec() { + if (textSpecBuilder_ == null) { + return textSpec_ == null + ? com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + .getDefaultInstance() + : textSpec_; + } else { + return textSpecBuilder_.getMessage(); + } + } + + /** + * + * + *
+         * Optional. The specification for building a text search index for a
+         * field.
+         * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec text_spec = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setTextSpec( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec value) { + if (textSpecBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + textSpec_ = value; + } else { + textSpecBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+         * Optional. The specification for building a text search index for a
+         * field.
+         * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec text_spec = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setTextSpec( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec.Builder + builderForValue) { + if (textSpecBuilder_ == null) { + textSpec_ = builderForValue.build(); + } else { + textSpecBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+         * Optional. The specification for building a text search index for a
+         * field.
+         * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec text_spec = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeTextSpec( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec value) { + if (textSpecBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) + && textSpec_ != null + && textSpec_ + != com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + .getDefaultInstance()) { + getTextSpecBuilder().mergeFrom(value); + } else { + textSpec_ = value; + } + } else { + textSpecBuilder_.mergeFrom(value); + } + if (textSpec_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } + return this; + } + + /** + * + * + *
+         * Optional. The specification for building a text search index for a
+         * field.
+         * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec text_spec = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearTextSpec() { + bitField0_ = (bitField0_ & ~0x00000001); + textSpec_ = null; + if (textSpecBuilder_ != null) { + textSpecBuilder_.dispose(); + textSpecBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+         * Optional. The specification for building a text search index for a
+         * field.
+         * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec text_spec = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec.Builder + getTextSpecBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return internalGetTextSpecFieldBuilder().getBuilder(); + } + + /** + * + * + *
+         * Optional. The specification for building a text search index for a
+         * field.
+         * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec text_spec = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpecOrBuilder + getTextSpecOrBuilder() { + if (textSpecBuilder_ != null) { + return textSpecBuilder_.getMessageOrBuilder(); + } else { + return textSpec_ == null + ? com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + .getDefaultInstance() + : textSpec_; + } + } + + /** + * + * + *
+         * Optional. The specification for building a text search index for a
+         * field.
+         * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec text_spec = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec.Builder, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpecOrBuilder> + internalGetTextSpecFieldBuilder() { + if (textSpecBuilder_ == null) { + textSpecBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec + .Builder, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchTextSpecOrBuilder>(getTextSpec(), getParentForChildren(), isClean()); + textSpec_ = null; + } + return textSpecBuilder_; + } + + private com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec geoSpec_; + private com.google.protobuf.SingleFieldBuilder< + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec.Builder, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpecOrBuilder> + geoSpecBuilder_; + + /** + * + * + *
+         * Optional. The specification for building a geo search index for a
+         * field.
+         * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec geo_spec = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the geoSpec field is set. + */ + public boolean hasGeoSpec() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+         * Optional. The specification for building a geo search index for a
+         * field.
+         * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec geo_spec = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The geoSpec. + */ + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + getGeoSpec() { + if (geoSpecBuilder_ == null) { + return geoSpec_ == null + ? com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + .getDefaultInstance() + : geoSpec_; + } else { + return geoSpecBuilder_.getMessage(); + } + } + + /** + * + * + *
+         * Optional. The specification for building a geo search index for a
+         * field.
+         * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec geo_spec = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setGeoSpec( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec value) { + if (geoSpecBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + geoSpec_ = value; + } else { + geoSpecBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+         * Optional. The specification for building a geo search index for a
+         * field.
+         * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec geo_spec = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setGeoSpec( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec.Builder + builderForValue) { + if (geoSpecBuilder_ == null) { + geoSpec_ = builderForValue.build(); + } else { + geoSpecBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+         * Optional. The specification for building a geo search index for a
+         * field.
+         * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec geo_spec = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeGeoSpec( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec value) { + if (geoSpecBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) + && geoSpec_ != null + && geoSpec_ + != com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + .getDefaultInstance()) { + getGeoSpecBuilder().mergeFrom(value); + } else { + geoSpec_ = value; + } + } else { + geoSpecBuilder_.mergeFrom(value); + } + if (geoSpec_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } + return this; + } + + /** + * + * + *
+         * Optional. The specification for building a geo search index for a
+         * field.
+         * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec geo_spec = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearGeoSpec() { + bitField0_ = (bitField0_ & ~0x00000002); + geoSpec_ = null; + if (geoSpecBuilder_ != null) { + geoSpecBuilder_.dispose(); + geoSpecBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+         * Optional. The specification for building a geo search index for a
+         * field.
+         * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec geo_spec = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec.Builder + getGeoSpecBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return internalGetGeoSpecFieldBuilder().getBuilder(); + } + + /** + * + * + *
+         * Optional. The specification for building a geo search index for a
+         * field.
+         * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec geo_spec = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpecOrBuilder + getGeoSpecOrBuilder() { + if (geoSpecBuilder_ != null) { + return geoSpecBuilder_.getMessageOrBuilder(); + } else { + return geoSpec_ == null + ? com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + .getDefaultInstance() + : geoSpec_; + } + } + + /** + * + * + *
+         * Optional. The specification for building a geo search index for a
+         * field.
+         * 
+ * + * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec geo_spec = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec.Builder, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpecOrBuilder> + internalGetGeoSpecFieldBuilder() { + if (geoSpecBuilder_ == null) { + geoSpecBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec + .Builder, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .SearchGeoSpecOrBuilder>(getGeoSpec(), getParentForChildren(), isClean()); + geoSpec_ = null; + } + return geoSpecBuilder_; + } + + // @@protoc_insertion_point(builder_scope:google.firestore.admin.v1.Index.IndexField.SearchConfig) + } + + // @@protoc_insertion_point(class_scope:google.firestore.admin.v1.Index.IndexField.SearchConfig) + private static final com.google.firestore.admin.v1.Index.IndexField.SearchConfig + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.firestore.admin.v1.Index.IndexField.SearchConfig(); + } + + public static com.google.firestore.admin.v1.Index.IndexField.SearchConfig + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SearchConfig parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException() + .setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + private int valueModeCase_ = 0; + + @SuppressWarnings("serial") + private java.lang.Object valueMode_; + + public enum ValueModeCase + implements + com.google.protobuf.Internal.EnumLite, + com.google.protobuf.AbstractMessage.InternalOneOfEnum { + ORDER(2), + ARRAY_CONFIG(3), + VECTOR_CONFIG(4), + SEARCH_CONFIG(5), + VALUEMODE_NOT_SET(0); + private final int value; + + private ValueModeCase(int value) { + this.value = value; + } + + /** + * @param value The number of the enum to look for. + * @return The enum associated with the given number. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ValueModeCase valueOf(int value) { + return forNumber(value); + } + + public static ValueModeCase forNumber(int value) { + switch (value) { + case 2: + return ORDER; + case 3: + return ARRAY_CONFIG; + case 4: + return VECTOR_CONFIG; + case 5: + return SEARCH_CONFIG; + case 0: + return VALUEMODE_NOT_SET; + default: + return null; + } + } + + public int getNumber() { + return this.value; + } + }; + + public ValueModeCase getValueModeCase() { + return ValueModeCase.forNumber(valueModeCase_); + } + + public static final int FIELD_PATH_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object fieldPath_ = ""; + + /** + * + * + *
+     * Can be __name__.
+     * For single field indexes, this must match the name of the field or may
+     * be omitted.
+     * 
+ * + * string field_path = 1; + * + * @return The fieldPath. + */ + @java.lang.Override + public java.lang.String getFieldPath() { + java.lang.Object ref = fieldPath_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + fieldPath_ = s; + return s; + } + } + + /** + * + * + *
+     * Can be __name__.
+     * For single field indexes, this must match the name of the field or may
+     * be omitted.
+     * 
+ * + * string field_path = 1; + * + * @return The bytes for fieldPath. + */ + @java.lang.Override + public com.google.protobuf.ByteString getFieldPathBytes() { + java.lang.Object ref = fieldPath_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + fieldPath_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ORDER_FIELD_NUMBER = 2; + + /** + * + * + *
+     * Indicates that this field supports ordering by the specified order or
+     * comparing using =, !=, <, <=, >, >=.
+     * 
+ * + * .google.firestore.admin.v1.Index.IndexField.Order order = 2; + * + * @return Whether the order field is set. + */ + public boolean hasOrder() { + return valueModeCase_ == 2; + } + + /** + * + * + *
+     * Indicates that this field supports ordering by the specified order or
+     * comparing using =, !=, <, <=, >, >=.
+     * 
+ * + * .google.firestore.admin.v1.Index.IndexField.Order order = 2; + * + * @return The enum numeric value on the wire for order. + */ + public int getOrderValue() { + if (valueModeCase_ == 2) { + return (java.lang.Integer) valueMode_; + } + return 0; + } + + /** + * + * + *
+     * Indicates that this field supports ordering by the specified order or
+     * comparing using =, !=, <, <=, >, >=.
+     * 
+ * + * .google.firestore.admin.v1.Index.IndexField.Order order = 2; + * + * @return The order. + */ + public com.google.firestore.admin.v1.Index.IndexField.Order getOrder() { + if (valueModeCase_ == 2) { + com.google.firestore.admin.v1.Index.IndexField.Order result = + com.google.firestore.admin.v1.Index.IndexField.Order.forNumber( + (java.lang.Integer) valueMode_); + return result == null + ? com.google.firestore.admin.v1.Index.IndexField.Order.UNRECOGNIZED + : result; + } + return com.google.firestore.admin.v1.Index.IndexField.Order.ORDER_UNSPECIFIED; + } + + public static final int ARRAY_CONFIG_FIELD_NUMBER = 3; + + /** + * + * + *
+     * Indicates that this field supports operations on `array_value`s.
+     * 
+ * + * .google.firestore.admin.v1.Index.IndexField.ArrayConfig array_config = 3; + * + * @return Whether the arrayConfig field is set. + */ + public boolean hasArrayConfig() { + return valueModeCase_ == 3; + } + + /** + * + * + *
+     * Indicates that this field supports operations on `array_value`s.
+     * 
+ * + * .google.firestore.admin.v1.Index.IndexField.ArrayConfig array_config = 3; + * + * @return The enum numeric value on the wire for arrayConfig. + */ + public int getArrayConfigValue() { + if (valueModeCase_ == 3) { + return (java.lang.Integer) valueMode_; + } + return 0; + } + + /** + * + * + *
      * Indicates that this field supports operations on `array_value`s.
      * 
* - * .google.firestore.admin.v1.Index.IndexField.ArrayConfig array_config = 3; + * .google.firestore.admin.v1.Index.IndexField.ArrayConfig array_config = 3; + * + * @return The arrayConfig. + */ + public com.google.firestore.admin.v1.Index.IndexField.ArrayConfig getArrayConfig() { + if (valueModeCase_ == 3) { + com.google.firestore.admin.v1.Index.IndexField.ArrayConfig result = + com.google.firestore.admin.v1.Index.IndexField.ArrayConfig.forNumber( + (java.lang.Integer) valueMode_); + return result == null + ? com.google.firestore.admin.v1.Index.IndexField.ArrayConfig.UNRECOGNIZED + : result; + } + return com.google.firestore.admin.v1.Index.IndexField.ArrayConfig.ARRAY_CONFIG_UNSPECIFIED; + } + + public static final int VECTOR_CONFIG_FIELD_NUMBER = 4; + + /** + * + * + *
+     * Indicates that this field supports nearest neighbor and distance
+     * operations on vector.
+     * 
+ * + * .google.firestore.admin.v1.Index.IndexField.VectorConfig vector_config = 4; + * + * @return Whether the vectorConfig field is set. + */ + @java.lang.Override + public boolean hasVectorConfig() { + return valueModeCase_ == 4; + } + + /** + * + * + *
+     * Indicates that this field supports nearest neighbor and distance
+     * operations on vector.
+     * 
+ * + * .google.firestore.admin.v1.Index.IndexField.VectorConfig vector_config = 4; + * + * @return The vectorConfig. + */ + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.VectorConfig getVectorConfig() { + if (valueModeCase_ == 4) { + return (com.google.firestore.admin.v1.Index.IndexField.VectorConfig) valueMode_; + } + return com.google.firestore.admin.v1.Index.IndexField.VectorConfig.getDefaultInstance(); + } + + /** + * + * + *
+     * Indicates that this field supports nearest neighbor and distance
+     * operations on vector.
+     * 
+ * + * .google.firestore.admin.v1.Index.IndexField.VectorConfig vector_config = 4; + */ + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.VectorConfigOrBuilder + getVectorConfigOrBuilder() { + if (valueModeCase_ == 4) { + return (com.google.firestore.admin.v1.Index.IndexField.VectorConfig) valueMode_; + } + return com.google.firestore.admin.v1.Index.IndexField.VectorConfig.getDefaultInstance(); + } + + public static final int SEARCH_CONFIG_FIELD_NUMBER = 5; + + /** + * + * + *
+     * Indicates that this field supports search operations. This field
+     * is only currently supported for indexes with MONGODB_COMPATIBLE_API
+     * ApiScope.
+     * 
+ * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig search_config = 5; + * + * @return Whether the searchConfig field is set. + */ + @java.lang.Override + public boolean hasSearchConfig() { + return valueModeCase_ == 5; + } + + /** + * + * + *
+     * Indicates that this field supports search operations. This field
+     * is only currently supported for indexes with MONGODB_COMPATIBLE_API
+     * ApiScope.
+     * 
+ * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig search_config = 5; + * + * @return The searchConfig. + */ + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig getSearchConfig() { + if (valueModeCase_ == 5) { + return (com.google.firestore.admin.v1.Index.IndexField.SearchConfig) valueMode_; + } + return com.google.firestore.admin.v1.Index.IndexField.SearchConfig.getDefaultInstance(); + } + + /** + * + * + *
+     * Indicates that this field supports search operations. This field
+     * is only currently supported for indexes with MONGODB_COMPATIBLE_API
+     * ApiScope.
+     * 
+ * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig search_config = 5; + */ + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfigOrBuilder + getSearchConfigOrBuilder() { + if (valueModeCase_ == 5) { + return (com.google.firestore.admin.v1.Index.IndexField.SearchConfig) valueMode_; + } + return com.google.firestore.admin.v1.Index.IndexField.SearchConfig.getDefaultInstance(); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(fieldPath_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, fieldPath_); + } + if (valueModeCase_ == 2) { + output.writeEnum(2, ((java.lang.Integer) valueMode_)); + } + if (valueModeCase_ == 3) { + output.writeEnum(3, ((java.lang.Integer) valueMode_)); + } + if (valueModeCase_ == 4) { + output.writeMessage( + 4, (com.google.firestore.admin.v1.Index.IndexField.VectorConfig) valueMode_); + } + if (valueModeCase_ == 5) { + output.writeMessage( + 5, (com.google.firestore.admin.v1.Index.IndexField.SearchConfig) valueMode_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(fieldPath_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, fieldPath_); + } + if (valueModeCase_ == 2) { + size += + com.google.protobuf.CodedOutputStream.computeEnumSize( + 2, ((java.lang.Integer) valueMode_)); + } + if (valueModeCase_ == 3) { + size += + com.google.protobuf.CodedOutputStream.computeEnumSize( + 3, ((java.lang.Integer) valueMode_)); + } + if (valueModeCase_ == 4) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 4, (com.google.firestore.admin.v1.Index.IndexField.VectorConfig) valueMode_); + } + if (valueModeCase_ == 5) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 5, (com.google.firestore.admin.v1.Index.IndexField.SearchConfig) valueMode_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.firestore.admin.v1.Index.IndexField)) { + return super.equals(obj); + } + com.google.firestore.admin.v1.Index.IndexField other = + (com.google.firestore.admin.v1.Index.IndexField) obj; + + if (!getFieldPath().equals(other.getFieldPath())) return false; + if (!getValueModeCase().equals(other.getValueModeCase())) return false; + switch (valueModeCase_) { + case 2: + if (getOrderValue() != other.getOrderValue()) return false; + break; + case 3: + if (getArrayConfigValue() != other.getArrayConfigValue()) return false; + break; + case 4: + if (!getVectorConfig().equals(other.getVectorConfig())) return false; + break; + case 5: + if (!getSearchConfig().equals(other.getSearchConfig())) return false; + break; + case 0: + default: + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + FIELD_PATH_FIELD_NUMBER; + hash = (53 * hash) + getFieldPath().hashCode(); + switch (valueModeCase_) { + case 2: + hash = (37 * hash) + ORDER_FIELD_NUMBER; + hash = (53 * hash) + getOrderValue(); + break; + case 3: + hash = (37 * hash) + ARRAY_CONFIG_FIELD_NUMBER; + hash = (53 * hash) + getArrayConfigValue(); + break; + case 4: + hash = (37 * hash) + VECTOR_CONFIG_FIELD_NUMBER; + hash = (53 * hash) + getVectorConfig().hashCode(); + break; + case 5: + hash = (37 * hash) + SEARCH_CONFIG_FIELD_NUMBER; + hash = (53 * hash) + getSearchConfig().hashCode(); + break; + case 0: + default: + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.firestore.admin.v1.Index.IndexField parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.firestore.admin.v1.Index.IndexField parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.firestore.admin.v1.Index.IndexField parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.firestore.admin.v1.Index.IndexField parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.firestore.admin.v1.Index.IndexField parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.firestore.admin.v1.Index.IndexField parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.firestore.admin.v1.Index.IndexField parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.firestore.admin.v1.Index.IndexField parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.firestore.admin.v1.Index.IndexField parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.firestore.admin.v1.Index.IndexField parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.firestore.admin.v1.Index.IndexField parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.firestore.admin.v1.Index.IndexField parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(com.google.firestore.admin.v1.Index.IndexField prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+     * A field in an index.
+     * The field_path describes which field is indexed, the value_mode describes
+     * how the field value is indexed.
+     * 
+ * + * Protobuf type {@code google.firestore.admin.v1.Index.IndexField} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.firestore.admin.v1.Index.IndexField) + com.google.firestore.admin.v1.Index.IndexFieldOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_IndexField_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_IndexField_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.firestore.admin.v1.Index.IndexField.class, + com.google.firestore.admin.v1.Index.IndexField.Builder.class); + } + + // Construct using com.google.firestore.admin.v1.Index.IndexField.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + fieldPath_ = ""; + if (vectorConfigBuilder_ != null) { + vectorConfigBuilder_.clear(); + } + if (searchConfigBuilder_ != null) { + searchConfigBuilder_.clear(); + } + valueModeCase_ = 0; + valueMode_ = null; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_IndexField_descriptor; + } + + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField getDefaultInstanceForType() { + return com.google.firestore.admin.v1.Index.IndexField.getDefaultInstance(); + } + + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField build() { + com.google.firestore.admin.v1.Index.IndexField result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField buildPartial() { + com.google.firestore.admin.v1.Index.IndexField result = + new com.google.firestore.admin.v1.Index.IndexField(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + buildPartialOneofs(result); + onBuilt(); + return result; + } + + private void buildPartial0(com.google.firestore.admin.v1.Index.IndexField result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.fieldPath_ = fieldPath_; + } + } + + private void buildPartialOneofs(com.google.firestore.admin.v1.Index.IndexField result) { + result.valueModeCase_ = valueModeCase_; + result.valueMode_ = this.valueMode_; + if (valueModeCase_ == 4 && vectorConfigBuilder_ != null) { + result.valueMode_ = vectorConfigBuilder_.build(); + } + if (valueModeCase_ == 5 && searchConfigBuilder_ != null) { + result.valueMode_ = searchConfigBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.firestore.admin.v1.Index.IndexField) { + return mergeFrom((com.google.firestore.admin.v1.Index.IndexField) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.firestore.admin.v1.Index.IndexField other) { + if (other == com.google.firestore.admin.v1.Index.IndexField.getDefaultInstance()) + return this; + if (!other.getFieldPath().isEmpty()) { + fieldPath_ = other.fieldPath_; + bitField0_ |= 0x00000001; + onChanged(); + } + switch (other.getValueModeCase()) { + case ORDER: + { + setOrderValue(other.getOrderValue()); + break; + } + case ARRAY_CONFIG: + { + setArrayConfigValue(other.getArrayConfigValue()); + break; + } + case VECTOR_CONFIG: + { + mergeVectorConfig(other.getVectorConfig()); + break; + } + case SEARCH_CONFIG: + { + mergeSearchConfig(other.getSearchConfig()); + break; + } + case VALUEMODE_NOT_SET: + { + break; + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + fieldPath_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: + { + int rawValue = input.readEnum(); + valueModeCase_ = 2; + valueMode_ = rawValue; + break; + } // case 16 + case 24: + { + int rawValue = input.readEnum(); + valueModeCase_ = 3; + valueMode_ = rawValue; + break; + } // case 24 + case 34: + { + input.readMessage( + internalGetVectorConfigFieldBuilder().getBuilder(), extensionRegistry); + valueModeCase_ = 4; + break; + } // case 34 + case 42: + { + input.readMessage( + internalGetSearchConfigFieldBuilder().getBuilder(), extensionRegistry); + valueModeCase_ = 5; + break; + } // case 42 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int valueModeCase_ = 0; + private java.lang.Object valueMode_; + + public ValueModeCase getValueModeCase() { + return ValueModeCase.forNumber(valueModeCase_); + } + + public Builder clearValueMode() { + valueModeCase_ = 0; + valueMode_ = null; + onChanged(); + return this; + } + + private int bitField0_; + + private java.lang.Object fieldPath_ = ""; + + /** + * + * + *
+       * Can be __name__.
+       * For single field indexes, this must match the name of the field or may
+       * be omitted.
+       * 
+ * + * string field_path = 1; + * + * @return The fieldPath. + */ + public java.lang.String getFieldPath() { + java.lang.Object ref = fieldPath_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + fieldPath_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Can be __name__.
+       * For single field indexes, this must match the name of the field or may
+       * be omitted.
+       * 
+ * + * string field_path = 1; + * + * @return The bytes for fieldPath. + */ + public com.google.protobuf.ByteString getFieldPathBytes() { + java.lang.Object ref = fieldPath_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + fieldPath_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Can be __name__.
+       * For single field indexes, this must match the name of the field or may
+       * be omitted.
+       * 
+ * + * string field_path = 1; + * + * @param value The fieldPath to set. + * @return This builder for chaining. + */ + public Builder setFieldPath(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + fieldPath_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+       * Can be __name__.
+       * For single field indexes, this must match the name of the field or may
+       * be omitted.
+       * 
+ * + * string field_path = 1; + * + * @return This builder for chaining. + */ + public Builder clearFieldPath() { + fieldPath_ = getDefaultInstance().getFieldPath(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+       * Can be __name__.
+       * For single field indexes, this must match the name of the field or may
+       * be omitted.
+       * 
+ * + * string field_path = 1; + * + * @param value The bytes for fieldPath to set. + * @return This builder for chaining. + */ + public Builder setFieldPathBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + fieldPath_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+       * Indicates that this field supports ordering by the specified order or
+       * comparing using =, !=, <, <=, >, >=.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.Order order = 2; + * + * @return Whether the order field is set. + */ + @java.lang.Override + public boolean hasOrder() { + return valueModeCase_ == 2; + } + + /** + * + * + *
+       * Indicates that this field supports ordering by the specified order or
+       * comparing using =, !=, <, <=, >, >=.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.Order order = 2; + * + * @return The enum numeric value on the wire for order. + */ + @java.lang.Override + public int getOrderValue() { + if (valueModeCase_ == 2) { + return ((java.lang.Integer) valueMode_).intValue(); + } + return 0; + } + + /** + * + * + *
+       * Indicates that this field supports ordering by the specified order or
+       * comparing using =, !=, <, <=, >, >=.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.Order order = 2; + * + * @param value The enum numeric value on the wire for order to set. + * @return This builder for chaining. + */ + public Builder setOrderValue(int value) { + valueModeCase_ = 2; + valueMode_ = value; + onChanged(); + return this; + } + + /** + * + * + *
+       * Indicates that this field supports ordering by the specified order or
+       * comparing using =, !=, <, <=, >, >=.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.Order order = 2; + * + * @return The order. + */ + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.Order getOrder() { + if (valueModeCase_ == 2) { + com.google.firestore.admin.v1.Index.IndexField.Order result = + com.google.firestore.admin.v1.Index.IndexField.Order.forNumber( + (java.lang.Integer) valueMode_); + return result == null + ? com.google.firestore.admin.v1.Index.IndexField.Order.UNRECOGNIZED + : result; + } + return com.google.firestore.admin.v1.Index.IndexField.Order.ORDER_UNSPECIFIED; + } + + /** + * + * + *
+       * Indicates that this field supports ordering by the specified order or
+       * comparing using =, !=, <, <=, >, >=.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.Order order = 2; + * + * @param value The order to set. + * @return This builder for chaining. + */ + public Builder setOrder(com.google.firestore.admin.v1.Index.IndexField.Order value) { + if (value == null) { + throw new NullPointerException(); + } + valueModeCase_ = 2; + valueMode_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+       * Indicates that this field supports ordering by the specified order or
+       * comparing using =, !=, <, <=, >, >=.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.Order order = 2; + * + * @return This builder for chaining. + */ + public Builder clearOrder() { + if (valueModeCase_ == 2) { + valueModeCase_ = 0; + valueMode_ = null; + onChanged(); + } + return this; + } + + /** + * + * + *
+       * Indicates that this field supports operations on `array_value`s.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.ArrayConfig array_config = 3; + * + * @return Whether the arrayConfig field is set. + */ + @java.lang.Override + public boolean hasArrayConfig() { + return valueModeCase_ == 3; + } + + /** + * + * + *
+       * Indicates that this field supports operations on `array_value`s.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.ArrayConfig array_config = 3; + * + * @return The enum numeric value on the wire for arrayConfig. + */ + @java.lang.Override + public int getArrayConfigValue() { + if (valueModeCase_ == 3) { + return ((java.lang.Integer) valueMode_).intValue(); + } + return 0; + } + + /** + * + * + *
+       * Indicates that this field supports operations on `array_value`s.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.ArrayConfig array_config = 3; + * + * @param value The enum numeric value on the wire for arrayConfig to set. + * @return This builder for chaining. + */ + public Builder setArrayConfigValue(int value) { + valueModeCase_ = 3; + valueMode_ = value; + onChanged(); + return this; + } + + /** + * + * + *
+       * Indicates that this field supports operations on `array_value`s.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.ArrayConfig array_config = 3; + * + * @return The arrayConfig. + */ + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.ArrayConfig getArrayConfig() { + if (valueModeCase_ == 3) { + com.google.firestore.admin.v1.Index.IndexField.ArrayConfig result = + com.google.firestore.admin.v1.Index.IndexField.ArrayConfig.forNumber( + (java.lang.Integer) valueMode_); + return result == null + ? com.google.firestore.admin.v1.Index.IndexField.ArrayConfig.UNRECOGNIZED + : result; + } + return com.google.firestore.admin.v1.Index.IndexField.ArrayConfig.ARRAY_CONFIG_UNSPECIFIED; + } + + /** + * + * + *
+       * Indicates that this field supports operations on `array_value`s.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.ArrayConfig array_config = 3; + * + * @param value The arrayConfig to set. + * @return This builder for chaining. + */ + public Builder setArrayConfig( + com.google.firestore.admin.v1.Index.IndexField.ArrayConfig value) { + if (value == null) { + throw new NullPointerException(); + } + valueModeCase_ = 3; + valueMode_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+       * Indicates that this field supports operations on `array_value`s.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.ArrayConfig array_config = 3; + * + * @return This builder for chaining. + */ + public Builder clearArrayConfig() { + if (valueModeCase_ == 3) { + valueModeCase_ = 0; + valueMode_ = null; + onChanged(); + } + return this; + } + + private com.google.protobuf.SingleFieldBuilder< + com.google.firestore.admin.v1.Index.IndexField.VectorConfig, + com.google.firestore.admin.v1.Index.IndexField.VectorConfig.Builder, + com.google.firestore.admin.v1.Index.IndexField.VectorConfigOrBuilder> + vectorConfigBuilder_; + + /** + * + * + *
+       * Indicates that this field supports nearest neighbor and distance
+       * operations on vector.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.VectorConfig vector_config = 4; + * + * @return Whether the vectorConfig field is set. + */ + @java.lang.Override + public boolean hasVectorConfig() { + return valueModeCase_ == 4; + } + + /** + * + * + *
+       * Indicates that this field supports nearest neighbor and distance
+       * operations on vector.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.VectorConfig vector_config = 4; + * + * @return The vectorConfig. + */ + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.VectorConfig getVectorConfig() { + if (vectorConfigBuilder_ == null) { + if (valueModeCase_ == 4) { + return (com.google.firestore.admin.v1.Index.IndexField.VectorConfig) valueMode_; + } + return com.google.firestore.admin.v1.Index.IndexField.VectorConfig.getDefaultInstance(); + } else { + if (valueModeCase_ == 4) { + return vectorConfigBuilder_.getMessage(); + } + return com.google.firestore.admin.v1.Index.IndexField.VectorConfig.getDefaultInstance(); + } + } + + /** + * + * + *
+       * Indicates that this field supports nearest neighbor and distance
+       * operations on vector.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.VectorConfig vector_config = 4; + */ + public Builder setVectorConfig( + com.google.firestore.admin.v1.Index.IndexField.VectorConfig value) { + if (vectorConfigBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + valueMode_ = value; + onChanged(); + } else { + vectorConfigBuilder_.setMessage(value); + } + valueModeCase_ = 4; + return this; + } + + /** + * + * + *
+       * Indicates that this field supports nearest neighbor and distance
+       * operations on vector.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.VectorConfig vector_config = 4; + */ + public Builder setVectorConfig( + com.google.firestore.admin.v1.Index.IndexField.VectorConfig.Builder builderForValue) { + if (vectorConfigBuilder_ == null) { + valueMode_ = builderForValue.build(); + onChanged(); + } else { + vectorConfigBuilder_.setMessage(builderForValue.build()); + } + valueModeCase_ = 4; + return this; + } + + /** + * + * + *
+       * Indicates that this field supports nearest neighbor and distance
+       * operations on vector.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.VectorConfig vector_config = 4; + */ + public Builder mergeVectorConfig( + com.google.firestore.admin.v1.Index.IndexField.VectorConfig value) { + if (vectorConfigBuilder_ == null) { + if (valueModeCase_ == 4 + && valueMode_ + != com.google.firestore.admin.v1.Index.IndexField.VectorConfig + .getDefaultInstance()) { + valueMode_ = + com.google.firestore.admin.v1.Index.IndexField.VectorConfig.newBuilder( + (com.google.firestore.admin.v1.Index.IndexField.VectorConfig) valueMode_) + .mergeFrom(value) + .buildPartial(); + } else { + valueMode_ = value; + } + onChanged(); + } else { + if (valueModeCase_ == 4) { + vectorConfigBuilder_.mergeFrom(value); + } else { + vectorConfigBuilder_.setMessage(value); + } + } + valueModeCase_ = 4; + return this; + } + + /** + * + * + *
+       * Indicates that this field supports nearest neighbor and distance
+       * operations on vector.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.VectorConfig vector_config = 4; + */ + public Builder clearVectorConfig() { + if (vectorConfigBuilder_ == null) { + if (valueModeCase_ == 4) { + valueModeCase_ = 0; + valueMode_ = null; + onChanged(); + } + } else { + if (valueModeCase_ == 4) { + valueModeCase_ = 0; + valueMode_ = null; + } + vectorConfigBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+       * Indicates that this field supports nearest neighbor and distance
+       * operations on vector.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.VectorConfig vector_config = 4; + */ + public com.google.firestore.admin.v1.Index.IndexField.VectorConfig.Builder + getVectorConfigBuilder() { + return internalGetVectorConfigFieldBuilder().getBuilder(); + } + + /** + * + * + *
+       * Indicates that this field supports nearest neighbor and distance
+       * operations on vector.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.VectorConfig vector_config = 4; + */ + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.VectorConfigOrBuilder + getVectorConfigOrBuilder() { + if ((valueModeCase_ == 4) && (vectorConfigBuilder_ != null)) { + return vectorConfigBuilder_.getMessageOrBuilder(); + } else { + if (valueModeCase_ == 4) { + return (com.google.firestore.admin.v1.Index.IndexField.VectorConfig) valueMode_; + } + return com.google.firestore.admin.v1.Index.IndexField.VectorConfig.getDefaultInstance(); + } + } + + /** + * + * + *
+       * Indicates that this field supports nearest neighbor and distance
+       * operations on vector.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.VectorConfig vector_config = 4; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.firestore.admin.v1.Index.IndexField.VectorConfig, + com.google.firestore.admin.v1.Index.IndexField.VectorConfig.Builder, + com.google.firestore.admin.v1.Index.IndexField.VectorConfigOrBuilder> + internalGetVectorConfigFieldBuilder() { + if (vectorConfigBuilder_ == null) { + if (!(valueModeCase_ == 4)) { + valueMode_ = + com.google.firestore.admin.v1.Index.IndexField.VectorConfig.getDefaultInstance(); + } + vectorConfigBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.firestore.admin.v1.Index.IndexField.VectorConfig, + com.google.firestore.admin.v1.Index.IndexField.VectorConfig.Builder, + com.google.firestore.admin.v1.Index.IndexField.VectorConfigOrBuilder>( + (com.google.firestore.admin.v1.Index.IndexField.VectorConfig) valueMode_, + getParentForChildren(), + isClean()); + valueMode_ = null; + } + valueModeCase_ = 4; + onChanged(); + return vectorConfigBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.google.firestore.admin.v1.Index.IndexField.SearchConfig, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.Builder, + com.google.firestore.admin.v1.Index.IndexField.SearchConfigOrBuilder> + searchConfigBuilder_; + + /** + * + * + *
+       * Indicates that this field supports search operations. This field
+       * is only currently supported for indexes with MONGODB_COMPATIBLE_API
+       * ApiScope.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig search_config = 5; + * + * @return Whether the searchConfig field is set. + */ + @java.lang.Override + public boolean hasSearchConfig() { + return valueModeCase_ == 5; + } + + /** + * + * + *
+       * Indicates that this field supports search operations. This field
+       * is only currently supported for indexes with MONGODB_COMPATIBLE_API
+       * ApiScope.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig search_config = 5; + * + * @return The searchConfig. + */ + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig getSearchConfig() { + if (searchConfigBuilder_ == null) { + if (valueModeCase_ == 5) { + return (com.google.firestore.admin.v1.Index.IndexField.SearchConfig) valueMode_; + } + return com.google.firestore.admin.v1.Index.IndexField.SearchConfig.getDefaultInstance(); + } else { + if (valueModeCase_ == 5) { + return searchConfigBuilder_.getMessage(); + } + return com.google.firestore.admin.v1.Index.IndexField.SearchConfig.getDefaultInstance(); + } + } + + /** + * + * + *
+       * Indicates that this field supports search operations. This field
+       * is only currently supported for indexes with MONGODB_COMPATIBLE_API
+       * ApiScope.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig search_config = 5; + */ + public Builder setSearchConfig( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig value) { + if (searchConfigBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + valueMode_ = value; + onChanged(); + } else { + searchConfigBuilder_.setMessage(value); + } + valueModeCase_ = 5; + return this; + } + + /** + * + * + *
+       * Indicates that this field supports search operations. This field
+       * is only currently supported for indexes with MONGODB_COMPATIBLE_API
+       * ApiScope.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig search_config = 5; + */ + public Builder setSearchConfig( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.Builder builderForValue) { + if (searchConfigBuilder_ == null) { + valueMode_ = builderForValue.build(); + onChanged(); + } else { + searchConfigBuilder_.setMessage(builderForValue.build()); + } + valueModeCase_ = 5; + return this; + } + + /** + * + * + *
+       * Indicates that this field supports search operations. This field
+       * is only currently supported for indexes with MONGODB_COMPATIBLE_API
+       * ApiScope.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig search_config = 5; + */ + public Builder mergeSearchConfig( + com.google.firestore.admin.v1.Index.IndexField.SearchConfig value) { + if (searchConfigBuilder_ == null) { + if (valueModeCase_ == 5 + && valueMode_ + != com.google.firestore.admin.v1.Index.IndexField.SearchConfig + .getDefaultInstance()) { + valueMode_ = + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.newBuilder( + (com.google.firestore.admin.v1.Index.IndexField.SearchConfig) valueMode_) + .mergeFrom(value) + .buildPartial(); + } else { + valueMode_ = value; + } + onChanged(); + } else { + if (valueModeCase_ == 5) { + searchConfigBuilder_.mergeFrom(value); + } else { + searchConfigBuilder_.setMessage(value); + } + } + valueModeCase_ = 5; + return this; + } + + /** + * + * + *
+       * Indicates that this field supports search operations. This field
+       * is only currently supported for indexes with MONGODB_COMPATIBLE_API
+       * ApiScope.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig search_config = 5; + */ + public Builder clearSearchConfig() { + if (searchConfigBuilder_ == null) { + if (valueModeCase_ == 5) { + valueModeCase_ = 0; + valueMode_ = null; + onChanged(); + } + } else { + if (valueModeCase_ == 5) { + valueModeCase_ = 0; + valueMode_ = null; + } + searchConfigBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+       * Indicates that this field supports search operations. This field
+       * is only currently supported for indexes with MONGODB_COMPATIBLE_API
+       * ApiScope.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig search_config = 5; + */ + public com.google.firestore.admin.v1.Index.IndexField.SearchConfig.Builder + getSearchConfigBuilder() { + return internalGetSearchConfigFieldBuilder().getBuilder(); + } + + /** + * + * + *
+       * Indicates that this field supports search operations. This field
+       * is only currently supported for indexes with MONGODB_COMPATIBLE_API
+       * ApiScope.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig search_config = 5; + */ + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField.SearchConfigOrBuilder + getSearchConfigOrBuilder() { + if ((valueModeCase_ == 5) && (searchConfigBuilder_ != null)) { + return searchConfigBuilder_.getMessageOrBuilder(); + } else { + if (valueModeCase_ == 5) { + return (com.google.firestore.admin.v1.Index.IndexField.SearchConfig) valueMode_; + } + return com.google.firestore.admin.v1.Index.IndexField.SearchConfig.getDefaultInstance(); + } + } + + /** + * + * + *
+       * Indicates that this field supports search operations. This field
+       * is only currently supported for indexes with MONGODB_COMPATIBLE_API
+       * ApiScope.
+       * 
+ * + * .google.firestore.admin.v1.Index.IndexField.SearchConfig search_config = 5; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.firestore.admin.v1.Index.IndexField.SearchConfig, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.Builder, + com.google.firestore.admin.v1.Index.IndexField.SearchConfigOrBuilder> + internalGetSearchConfigFieldBuilder() { + if (searchConfigBuilder_ == null) { + if (!(valueModeCase_ == 5)) { + valueMode_ = + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.getDefaultInstance(); + } + searchConfigBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.firestore.admin.v1.Index.IndexField.SearchConfig, + com.google.firestore.admin.v1.Index.IndexField.SearchConfig.Builder, + com.google.firestore.admin.v1.Index.IndexField.SearchConfigOrBuilder>( + (com.google.firestore.admin.v1.Index.IndexField.SearchConfig) valueMode_, + getParentForChildren(), + isClean()); + valueMode_ = null; + } + valueModeCase_ = 5; + onChanged(); + return searchConfigBuilder_; + } + + // @@protoc_insertion_point(builder_scope:google.firestore.admin.v1.Index.IndexField) + } + + // @@protoc_insertion_point(class_scope:google.firestore.admin.v1.Index.IndexField) + private static final com.google.firestore.admin.v1.Index.IndexField DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.firestore.admin.v1.Index.IndexField(); + } + + public static com.google.firestore.admin.v1.Index.IndexField getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public IndexField parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException() + .setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.firestore.admin.v1.Index.IndexField getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface SearchIndexOptionsOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.firestore.admin.v1.Index.SearchIndexOptions) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+     * Optional. The language to use for text search indexes. Used as the
+     * default language if not overridden at the document level by specifying
+     * the `text_language_override_field`. The language is specified as a BCP 47
+     * language code.
+     * For indexes with MONGODB_COMPATIBLE_API ApiScope: If unspecified, the
+     * default language is English.
+     * For indexes with `ANY_API` ApiScope: If unspecified, the default behavior
+     * is autodetect.
+     * 
+ * + * string text_language = 1 [(.google.api.field_behavior) = OPTIONAL]; * - * @return The enum numeric value on the wire for arrayConfig. + * @return The textLanguage. */ - public int getArrayConfigValue() { - if (valueModeCase_ == 3) { - return (java.lang.Integer) valueMode_; - } - return 0; + java.lang.String getTextLanguage(); + + /** + * + * + *
+     * Optional. The language to use for text search indexes. Used as the
+     * default language if not overridden at the document level by specifying
+     * the `text_language_override_field`. The language is specified as a BCP 47
+     * language code.
+     * For indexes with MONGODB_COMPATIBLE_API ApiScope: If unspecified, the
+     * default language is English.
+     * For indexes with `ANY_API` ApiScope: If unspecified, the default behavior
+     * is autodetect.
+     * 
+ * + * string text_language = 1 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for textLanguage. + */ + com.google.protobuf.ByteString getTextLanguageBytes(); + + /** + * + * + *
+     * Optional. The field in the document that specifies which language to use
+     * for that specific document. For indexes with MONGODB_COMPATIBLE_API
+     * ApiScope: if unspecified, the language is taken from the "language" field
+     * if it exists or from `text_language` if it does not.
+     * 
+ * + * string text_language_override_field_path = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The textLanguageOverrideFieldPath. + */ + java.lang.String getTextLanguageOverrideFieldPath(); + + /** + * + * + *
+     * Optional. The field in the document that specifies which language to use
+     * for that specific document. For indexes with MONGODB_COMPATIBLE_API
+     * ApiScope: if unspecified, the language is taken from the "language" field
+     * if it exists or from `text_language` if it does not.
+     * 
+ * + * string text_language_override_field_path = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The bytes for textLanguageOverrideFieldPath. + */ + com.google.protobuf.ByteString getTextLanguageOverrideFieldPathBytes(); + } + + /** + * + * + *
+   * Options for search indexes at the definition level.
+   * 
+ * + * Protobuf type {@code google.firestore.admin.v1.Index.SearchIndexOptions} + */ + public static final class SearchIndexOptions extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.firestore.admin.v1.Index.SearchIndexOptions) + SearchIndexOptionsOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "SearchIndexOptions"); + } + + // Use SearchIndexOptions.newBuilder() to construct. + private SearchIndexOptions(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private SearchIndexOptions() { + textLanguage_ = ""; + textLanguageOverrideFieldPath_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_SearchIndexOptions_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_SearchIndexOptions_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.firestore.admin.v1.Index.SearchIndexOptions.class, + com.google.firestore.admin.v1.Index.SearchIndexOptions.Builder.class); } + public static final int TEXT_LANGUAGE_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object textLanguage_ = ""; + /** * * *
-     * Indicates that this field supports operations on `array_value`s.
+     * Optional. The language to use for text search indexes. Used as the
+     * default language if not overridden at the document level by specifying
+     * the `text_language_override_field`. The language is specified as a BCP 47
+     * language code.
+     * For indexes with MONGODB_COMPATIBLE_API ApiScope: If unspecified, the
+     * default language is English.
+     * For indexes with `ANY_API` ApiScope: If unspecified, the default behavior
+     * is autodetect.
      * 
* - * .google.firestore.admin.v1.Index.IndexField.ArrayConfig array_config = 3; + * string text_language = 1 [(.google.api.field_behavior) = OPTIONAL]; * - * @return The arrayConfig. + * @return The textLanguage. */ - public com.google.firestore.admin.v1.Index.IndexField.ArrayConfig getArrayConfig() { - if (valueModeCase_ == 3) { - com.google.firestore.admin.v1.Index.IndexField.ArrayConfig result = - com.google.firestore.admin.v1.Index.IndexField.ArrayConfig.forNumber( - (java.lang.Integer) valueMode_); - return result == null - ? com.google.firestore.admin.v1.Index.IndexField.ArrayConfig.UNRECOGNIZED - : result; + @java.lang.Override + public java.lang.String getTextLanguage() { + java.lang.Object ref = textLanguage_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + textLanguage_ = s; + return s; } - return com.google.firestore.admin.v1.Index.IndexField.ArrayConfig.ARRAY_CONFIG_UNSPECIFIED; } - public static final int VECTOR_CONFIG_FIELD_NUMBER = 4; - /** * * *
-     * Indicates that this field supports nearest neighbor and distance
-     * operations on vector.
+     * Optional. The language to use for text search indexes. Used as the
+     * default language if not overridden at the document level by specifying
+     * the `text_language_override_field`. The language is specified as a BCP 47
+     * language code.
+     * For indexes with MONGODB_COMPATIBLE_API ApiScope: If unspecified, the
+     * default language is English.
+     * For indexes with `ANY_API` ApiScope: If unspecified, the default behavior
+     * is autodetect.
      * 
* - * .google.firestore.admin.v1.Index.IndexField.VectorConfig vector_config = 4; + * string text_language = 1 [(.google.api.field_behavior) = OPTIONAL]; * - * @return Whether the vectorConfig field is set. + * @return The bytes for textLanguage. */ @java.lang.Override - public boolean hasVectorConfig() { - return valueModeCase_ == 4; + public com.google.protobuf.ByteString getTextLanguageBytes() { + java.lang.Object ref = textLanguage_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + textLanguage_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } + public static final int TEXT_LANGUAGE_OVERRIDE_FIELD_PATH_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object textLanguageOverrideFieldPath_ = ""; + /** * * *
-     * Indicates that this field supports nearest neighbor and distance
-     * operations on vector.
+     * Optional. The field in the document that specifies which language to use
+     * for that specific document. For indexes with MONGODB_COMPATIBLE_API
+     * ApiScope: if unspecified, the language is taken from the "language" field
+     * if it exists or from `text_language` if it does not.
      * 
* - * .google.firestore.admin.v1.Index.IndexField.VectorConfig vector_config = 4; + * string text_language_override_field_path = 2 [(.google.api.field_behavior) = OPTIONAL]; + * * - * @return The vectorConfig. + * @return The textLanguageOverrideFieldPath. */ @java.lang.Override - public com.google.firestore.admin.v1.Index.IndexField.VectorConfig getVectorConfig() { - if (valueModeCase_ == 4) { - return (com.google.firestore.admin.v1.Index.IndexField.VectorConfig) valueMode_; + public java.lang.String getTextLanguageOverrideFieldPath() { + java.lang.Object ref = textLanguageOverrideFieldPath_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + textLanguageOverrideFieldPath_ = s; + return s; } - return com.google.firestore.admin.v1.Index.IndexField.VectorConfig.getDefaultInstance(); } /** * * *
-     * Indicates that this field supports nearest neighbor and distance
-     * operations on vector.
+     * Optional. The field in the document that specifies which language to use
+     * for that specific document. For indexes with MONGODB_COMPATIBLE_API
+     * ApiScope: if unspecified, the language is taken from the "language" field
+     * if it exists or from `text_language` if it does not.
      * 
* - * .google.firestore.admin.v1.Index.IndexField.VectorConfig vector_config = 4; + * string text_language_override_field_path = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The bytes for textLanguageOverrideFieldPath. */ @java.lang.Override - public com.google.firestore.admin.v1.Index.IndexField.VectorConfigOrBuilder - getVectorConfigOrBuilder() { - if (valueModeCase_ == 4) { - return (com.google.firestore.admin.v1.Index.IndexField.VectorConfig) valueMode_; + public com.google.protobuf.ByteString getTextLanguageOverrideFieldPathBytes() { + java.lang.Object ref = textLanguageOverrideFieldPath_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + textLanguageOverrideFieldPath_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; } - return com.google.firestore.admin.v1.Index.IndexField.VectorConfig.getDefaultInstance(); } private byte memoizedIsInitialized = -1; @@ -3178,18 +8987,11 @@ public final boolean isInitialized() { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessage.isStringEmpty(fieldPath_)) { - com.google.protobuf.GeneratedMessage.writeString(output, 1, fieldPath_); - } - if (valueModeCase_ == 2) { - output.writeEnum(2, ((java.lang.Integer) valueMode_)); - } - if (valueModeCase_ == 3) { - output.writeEnum(3, ((java.lang.Integer) valueMode_)); + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(textLanguage_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, textLanguage_); } - if (valueModeCase_ == 4) { - output.writeMessage( - 4, (com.google.firestore.admin.v1.Index.IndexField.VectorConfig) valueMode_); + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(textLanguageOverrideFieldPath_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, textLanguageOverrideFieldPath_); } getUnknownFields().writeTo(output); } @@ -3200,23 +9002,13 @@ public int getSerializedSize() { if (size != -1) return size; size = 0; - if (!com.google.protobuf.GeneratedMessage.isStringEmpty(fieldPath_)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(1, fieldPath_); - } - if (valueModeCase_ == 2) { - size += - com.google.protobuf.CodedOutputStream.computeEnumSize( - 2, ((java.lang.Integer) valueMode_)); - } - if (valueModeCase_ == 3) { - size += - com.google.protobuf.CodedOutputStream.computeEnumSize( - 3, ((java.lang.Integer) valueMode_)); + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(textLanguage_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, textLanguage_); } - if (valueModeCase_ == 4) { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(textLanguageOverrideFieldPath_)) { size += - com.google.protobuf.CodedOutputStream.computeMessageSize( - 4, (com.google.firestore.admin.v1.Index.IndexField.VectorConfig) valueMode_); + com.google.protobuf.GeneratedMessage.computeStringSize( + 2, textLanguageOverrideFieldPath_); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; @@ -3228,27 +9020,15 @@ public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof com.google.firestore.admin.v1.Index.IndexField)) { + if (!(obj instanceof com.google.firestore.admin.v1.Index.SearchIndexOptions)) { return super.equals(obj); } - com.google.firestore.admin.v1.Index.IndexField other = - (com.google.firestore.admin.v1.Index.IndexField) obj; + com.google.firestore.admin.v1.Index.SearchIndexOptions other = + (com.google.firestore.admin.v1.Index.SearchIndexOptions) obj; - if (!getFieldPath().equals(other.getFieldPath())) return false; - if (!getValueModeCase().equals(other.getValueModeCase())) return false; - switch (valueModeCase_) { - case 2: - if (getOrderValue() != other.getOrderValue()) return false; - break; - case 3: - if (getArrayConfigValue() != other.getArrayConfigValue()) return false; - break; - case 4: - if (!getVectorConfig().equals(other.getVectorConfig())) return false; - break; - case 0: - default: - } + if (!getTextLanguage().equals(other.getTextLanguage())) return false; + if (!getTextLanguageOverrideFieldPath().equals(other.getTextLanguageOverrideFieldPath())) + return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -3260,94 +9040,80 @@ public int hashCode() { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + FIELD_PATH_FIELD_NUMBER; - hash = (53 * hash) + getFieldPath().hashCode(); - switch (valueModeCase_) { - case 2: - hash = (37 * hash) + ORDER_FIELD_NUMBER; - hash = (53 * hash) + getOrderValue(); - break; - case 3: - hash = (37 * hash) + ARRAY_CONFIG_FIELD_NUMBER; - hash = (53 * hash) + getArrayConfigValue(); - break; - case 4: - hash = (37 * hash) + VECTOR_CONFIG_FIELD_NUMBER; - hash = (53 * hash) + getVectorConfig().hashCode(); - break; - case 0: - default: - } + hash = (37 * hash) + TEXT_LANGUAGE_FIELD_NUMBER; + hash = (53 * hash) + getTextLanguage().hashCode(); + hash = (37 * hash) + TEXT_LANGUAGE_OVERRIDE_FIELD_PATH_FIELD_NUMBER; + hash = (53 * hash) + getTextLanguageOverrideFieldPath().hashCode(); hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } - public static com.google.firestore.admin.v1.Index.IndexField parseFrom(java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { + public static com.google.firestore.admin.v1.Index.SearchIndexOptions parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static com.google.firestore.admin.v1.Index.IndexField parseFrom( + public static com.google.firestore.admin.v1.Index.SearchIndexOptions parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static com.google.firestore.admin.v1.Index.IndexField parseFrom( + public static com.google.firestore.admin.v1.Index.SearchIndexOptions parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static com.google.firestore.admin.v1.Index.IndexField parseFrom( + public static com.google.firestore.admin.v1.Index.SearchIndexOptions parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static com.google.firestore.admin.v1.Index.IndexField parseFrom(byte[] data) + public static com.google.firestore.admin.v1.Index.SearchIndexOptions parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static com.google.firestore.admin.v1.Index.IndexField parseFrom( + public static com.google.firestore.admin.v1.Index.SearchIndexOptions parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static com.google.firestore.admin.v1.Index.IndexField parseFrom( + public static com.google.firestore.admin.v1.Index.SearchIndexOptions parseFrom( java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); } - public static com.google.firestore.admin.v1.Index.IndexField parseFrom( + public static com.google.firestore.admin.v1.Index.SearchIndexOptions parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessage.parseWithIOException( PARSER, input, extensionRegistry); } - public static com.google.firestore.admin.v1.Index.IndexField parseDelimitedFrom( + public static com.google.firestore.admin.v1.Index.SearchIndexOptions parseDelimitedFrom( java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); } - public static com.google.firestore.admin.v1.Index.IndexField parseDelimitedFrom( + public static com.google.firestore.admin.v1.Index.SearchIndexOptions parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( PARSER, input, extensionRegistry); } - public static com.google.firestore.admin.v1.Index.IndexField parseFrom( + public static com.google.firestore.admin.v1.Index.SearchIndexOptions parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); } - public static com.google.firestore.admin.v1.Index.IndexField parseFrom( + public static com.google.firestore.admin.v1.Index.SearchIndexOptions parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -3364,7 +9130,8 @@ public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(com.google.firestore.admin.v1.Index.IndexField prototype) { + public static Builder newBuilder( + com.google.firestore.admin.v1.Index.SearchIndexOptions prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @@ -3377,574 +9144,260 @@ public Builder toBuilder() { protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent parent) { Builder builder = new Builder(parent); return builder; - } - - /** - * - * - *
-     * A field in an index.
-     * The field_path describes which field is indexed, the value_mode describes
-     * how the field value is indexed.
-     * 
- * - * Protobuf type {@code google.firestore.admin.v1.Index.IndexField} - */ - public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder - implements - // @@protoc_insertion_point(builder_implements:google.firestore.admin.v1.Index.IndexField) - com.google.firestore.admin.v1.Index.IndexFieldOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return com.google.firestore.admin.v1.IndexProto - .internal_static_google_firestore_admin_v1_Index_IndexField_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return com.google.firestore.admin.v1.IndexProto - .internal_static_google_firestore_admin_v1_Index_IndexField_fieldAccessorTable - .ensureFieldAccessorsInitialized( - com.google.firestore.admin.v1.Index.IndexField.class, - com.google.firestore.admin.v1.Index.IndexField.Builder.class); - } - - // Construct using com.google.firestore.admin.v1.Index.IndexField.newBuilder() - private Builder() {} - - private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - } - - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - fieldPath_ = ""; - if (vectorConfigBuilder_ != null) { - vectorConfigBuilder_.clear(); - } - valueModeCase_ = 0; - valueMode_ = null; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return com.google.firestore.admin.v1.IndexProto - .internal_static_google_firestore_admin_v1_Index_IndexField_descriptor; - } - - @java.lang.Override - public com.google.firestore.admin.v1.Index.IndexField getDefaultInstanceForType() { - return com.google.firestore.admin.v1.Index.IndexField.getDefaultInstance(); - } - - @java.lang.Override - public com.google.firestore.admin.v1.Index.IndexField build() { - com.google.firestore.admin.v1.Index.IndexField result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public com.google.firestore.admin.v1.Index.IndexField buildPartial() { - com.google.firestore.admin.v1.Index.IndexField result = - new com.google.firestore.admin.v1.Index.IndexField(this); - if (bitField0_ != 0) { - buildPartial0(result); - } - buildPartialOneofs(result); - onBuilt(); - return result; - } - - private void buildPartial0(com.google.firestore.admin.v1.Index.IndexField result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.fieldPath_ = fieldPath_; - } - } - - private void buildPartialOneofs(com.google.firestore.admin.v1.Index.IndexField result) { - result.valueModeCase_ = valueModeCase_; - result.valueMode_ = this.valueMode_; - if (valueModeCase_ == 4 && vectorConfigBuilder_ != null) { - result.valueMode_ = vectorConfigBuilder_.build(); - } - } - - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof com.google.firestore.admin.v1.Index.IndexField) { - return mergeFrom((com.google.firestore.admin.v1.Index.IndexField) other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(com.google.firestore.admin.v1.Index.IndexField other) { - if (other == com.google.firestore.admin.v1.Index.IndexField.getDefaultInstance()) - return this; - if (!other.getFieldPath().isEmpty()) { - fieldPath_ = other.fieldPath_; - bitField0_ |= 0x00000001; - onChanged(); - } - switch (other.getValueModeCase()) { - case ORDER: - { - setOrderValue(other.getOrderValue()); - break; - } - case ARRAY_CONFIG: - { - setArrayConfigValue(other.getArrayConfigValue()); - break; - } - case VECTOR_CONFIG: - { - mergeVectorConfig(other.getVectorConfig()); - break; - } - case VALUEMODE_NOT_SET: - { - break; - } - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: - { - fieldPath_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 16: - { - int rawValue = input.readEnum(); - valueModeCase_ = 2; - valueMode_ = rawValue; - break; - } // case 16 - case 24: - { - int rawValue = input.readEnum(); - valueModeCase_ = 3; - valueMode_ = rawValue; - break; - } // case 24 - case 34: - { - input.readMessage( - internalGetVectorConfigFieldBuilder().getBuilder(), extensionRegistry); - valueModeCase_ = 4; - break; - } // case 34 - default: - { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - - private int valueModeCase_ = 0; - private java.lang.Object valueMode_; - - public ValueModeCase getValueModeCase() { - return ValueModeCase.forNumber(valueModeCase_); - } - - public Builder clearValueMode() { - valueModeCase_ = 0; - valueMode_ = null; - onChanged(); - return this; - } - - private int bitField0_; - - private java.lang.Object fieldPath_ = ""; - - /** - * - * - *
-       * Can be __name__.
-       * For single field indexes, this must match the name of the field or may
-       * be omitted.
-       * 
- * - * string field_path = 1; - * - * @return The fieldPath. - */ - public java.lang.String getFieldPath() { - java.lang.Object ref = fieldPath_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - fieldPath_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } + } - /** - * - * - *
-       * Can be __name__.
-       * For single field indexes, this must match the name of the field or may
-       * be omitted.
-       * 
- * - * string field_path = 1; - * - * @return The bytes for fieldPath. - */ - public com.google.protobuf.ByteString getFieldPathBytes() { - java.lang.Object ref = fieldPath_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - fieldPath_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + /** + * + * + *
+     * Options for search indexes at the definition level.
+     * 
+ * + * Protobuf type {@code google.firestore.admin.v1.Index.SearchIndexOptions} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.firestore.admin.v1.Index.SearchIndexOptions) + com.google.firestore.admin.v1.Index.SearchIndexOptionsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_SearchIndexOptions_descriptor; } - /** - * - * - *
-       * Can be __name__.
-       * For single field indexes, this must match the name of the field or may
-       * be omitted.
-       * 
- * - * string field_path = 1; - * - * @param value The fieldPath to set. - * @return This builder for chaining. - */ - public Builder setFieldPath(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - fieldPath_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_SearchIndexOptions_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.firestore.admin.v1.Index.SearchIndexOptions.class, + com.google.firestore.admin.v1.Index.SearchIndexOptions.Builder.class); } - /** - * - * - *
-       * Can be __name__.
-       * For single field indexes, this must match the name of the field or may
-       * be omitted.
-       * 
- * - * string field_path = 1; - * - * @return This builder for chaining. - */ - public Builder clearFieldPath() { - fieldPath_ = getDefaultInstance().getFieldPath(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; + // Construct using com.google.firestore.admin.v1.Index.SearchIndexOptions.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); } - /** - * - * - *
-       * Can be __name__.
-       * For single field indexes, this must match the name of the field or may
-       * be omitted.
-       * 
- * - * string field_path = 1; - * - * @param value The bytes for fieldPath to set. - * @return This builder for chaining. - */ - public Builder setFieldPathBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - fieldPath_ = value; - bitField0_ |= 0x00000001; - onChanged(); + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + textLanguage_ = ""; + textLanguageOverrideFieldPath_ = ""; return this; } - /** - * - * - *
-       * Indicates that this field supports ordering by the specified order or
-       * comparing using =, !=, <, <=, >, >=.
-       * 
- * - * .google.firestore.admin.v1.Index.IndexField.Order order = 2; - * - * @return Whether the order field is set. - */ @java.lang.Override - public boolean hasOrder() { - return valueModeCase_ == 2; + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.firestore.admin.v1.IndexProto + .internal_static_google_firestore_admin_v1_Index_SearchIndexOptions_descriptor; } - /** - * - * - *
-       * Indicates that this field supports ordering by the specified order or
-       * comparing using =, !=, <, <=, >, >=.
-       * 
- * - * .google.firestore.admin.v1.Index.IndexField.Order order = 2; - * - * @return The enum numeric value on the wire for order. - */ @java.lang.Override - public int getOrderValue() { - if (valueModeCase_ == 2) { - return ((java.lang.Integer) valueMode_).intValue(); - } - return 0; + public com.google.firestore.admin.v1.Index.SearchIndexOptions getDefaultInstanceForType() { + return com.google.firestore.admin.v1.Index.SearchIndexOptions.getDefaultInstance(); } - /** - * - * - *
-       * Indicates that this field supports ordering by the specified order or
-       * comparing using =, !=, <, <=, >, >=.
-       * 
- * - * .google.firestore.admin.v1.Index.IndexField.Order order = 2; - * - * @param value The enum numeric value on the wire for order to set. - * @return This builder for chaining. - */ - public Builder setOrderValue(int value) { - valueModeCase_ = 2; - valueMode_ = value; - onChanged(); - return this; + @java.lang.Override + public com.google.firestore.admin.v1.Index.SearchIndexOptions build() { + com.google.firestore.admin.v1.Index.SearchIndexOptions result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; } - /** - * - * - *
-       * Indicates that this field supports ordering by the specified order or
-       * comparing using =, !=, <, <=, >, >=.
-       * 
- * - * .google.firestore.admin.v1.Index.IndexField.Order order = 2; - * - * @return The order. - */ @java.lang.Override - public com.google.firestore.admin.v1.Index.IndexField.Order getOrder() { - if (valueModeCase_ == 2) { - com.google.firestore.admin.v1.Index.IndexField.Order result = - com.google.firestore.admin.v1.Index.IndexField.Order.forNumber( - (java.lang.Integer) valueMode_); - return result == null - ? com.google.firestore.admin.v1.Index.IndexField.Order.UNRECOGNIZED - : result; + public com.google.firestore.admin.v1.Index.SearchIndexOptions buildPartial() { + com.google.firestore.admin.v1.Index.SearchIndexOptions result = + new com.google.firestore.admin.v1.Index.SearchIndexOptions(this); + if (bitField0_ != 0) { + buildPartial0(result); } - return com.google.firestore.admin.v1.Index.IndexField.Order.ORDER_UNSPECIFIED; + onBuilt(); + return result; } - /** - * - * - *
-       * Indicates that this field supports ordering by the specified order or
-       * comparing using =, !=, <, <=, >, >=.
-       * 
- * - * .google.firestore.admin.v1.Index.IndexField.Order order = 2; - * - * @param value The order to set. - * @return This builder for chaining. - */ - public Builder setOrder(com.google.firestore.admin.v1.Index.IndexField.Order value) { - if (value == null) { - throw new NullPointerException(); + private void buildPartial0(com.google.firestore.admin.v1.Index.SearchIndexOptions result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.textLanguage_ = textLanguage_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.textLanguageOverrideFieldPath_ = textLanguageOverrideFieldPath_; } - valueModeCase_ = 2; - valueMode_ = value.getNumber(); - onChanged(); - return this; } - /** - * - * - *
-       * Indicates that this field supports ordering by the specified order or
-       * comparing using =, !=, <, <=, >, >=.
-       * 
- * - * .google.firestore.admin.v1.Index.IndexField.Order order = 2; - * - * @return This builder for chaining. - */ - public Builder clearOrder() { - if (valueModeCase_ == 2) { - valueModeCase_ = 0; - valueMode_ = null; - onChanged(); + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.firestore.admin.v1.Index.SearchIndexOptions) { + return mergeFrom((com.google.firestore.admin.v1.Index.SearchIndexOptions) other); + } else { + super.mergeFrom(other); + return this; } - return this; } - /** - * - * - *
-       * Indicates that this field supports operations on `array_value`s.
-       * 
- * - * .google.firestore.admin.v1.Index.IndexField.ArrayConfig array_config = 3; - * - * @return Whether the arrayConfig field is set. - */ + public Builder mergeFrom(com.google.firestore.admin.v1.Index.SearchIndexOptions other) { + if (other == com.google.firestore.admin.v1.Index.SearchIndexOptions.getDefaultInstance()) + return this; + if (!other.getTextLanguage().isEmpty()) { + textLanguage_ = other.textLanguage_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getTextLanguageOverrideFieldPath().isEmpty()) { + textLanguageOverrideFieldPath_ = other.textLanguageOverrideFieldPath_; + bitField0_ |= 0x00000002; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + @java.lang.Override - public boolean hasArrayConfig() { - return valueModeCase_ == 3; + public final boolean isInitialized() { + return true; } - /** - * - * - *
-       * Indicates that this field supports operations on `array_value`s.
-       * 
- * - * .google.firestore.admin.v1.Index.IndexField.ArrayConfig array_config = 3; - * - * @return The enum numeric value on the wire for arrayConfig. - */ @java.lang.Override - public int getArrayConfigValue() { - if (valueModeCase_ == 3) { - return ((java.lang.Integer) valueMode_).intValue(); + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); } - return 0; + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + textLanguage_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + textLanguageOverrideFieldPath_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; } + private int bitField0_; + + private java.lang.Object textLanguage_ = ""; + /** * * *
-       * Indicates that this field supports operations on `array_value`s.
+       * Optional. The language to use for text search indexes. Used as the
+       * default language if not overridden at the document level by specifying
+       * the `text_language_override_field`. The language is specified as a BCP 47
+       * language code.
+       * For indexes with MONGODB_COMPATIBLE_API ApiScope: If unspecified, the
+       * default language is English.
+       * For indexes with `ANY_API` ApiScope: If unspecified, the default behavior
+       * is autodetect.
        * 
* - * .google.firestore.admin.v1.Index.IndexField.ArrayConfig array_config = 3; + * string text_language = 1 [(.google.api.field_behavior) = OPTIONAL]; * - * @param value The enum numeric value on the wire for arrayConfig to set. - * @return This builder for chaining. + * @return The textLanguage. */ - public Builder setArrayConfigValue(int value) { - valueModeCase_ = 3; - valueMode_ = value; - onChanged(); - return this; + public java.lang.String getTextLanguage() { + java.lang.Object ref = textLanguage_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + textLanguage_ = s; + return s; + } else { + return (java.lang.String) ref; + } } /** * * *
-       * Indicates that this field supports operations on `array_value`s.
+       * Optional. The language to use for text search indexes. Used as the
+       * default language if not overridden at the document level by specifying
+       * the `text_language_override_field`. The language is specified as a BCP 47
+       * language code.
+       * For indexes with MONGODB_COMPATIBLE_API ApiScope: If unspecified, the
+       * default language is English.
+       * For indexes with `ANY_API` ApiScope: If unspecified, the default behavior
+       * is autodetect.
        * 
* - * .google.firestore.admin.v1.Index.IndexField.ArrayConfig array_config = 3; + * string text_language = 1 [(.google.api.field_behavior) = OPTIONAL]; * - * @return The arrayConfig. + * @return The bytes for textLanguage. */ - @java.lang.Override - public com.google.firestore.admin.v1.Index.IndexField.ArrayConfig getArrayConfig() { - if (valueModeCase_ == 3) { - com.google.firestore.admin.v1.Index.IndexField.ArrayConfig result = - com.google.firestore.admin.v1.Index.IndexField.ArrayConfig.forNumber( - (java.lang.Integer) valueMode_); - return result == null - ? com.google.firestore.admin.v1.Index.IndexField.ArrayConfig.UNRECOGNIZED - : result; + public com.google.protobuf.ByteString getTextLanguageBytes() { + java.lang.Object ref = textLanguage_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + textLanguage_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; } - return com.google.firestore.admin.v1.Index.IndexField.ArrayConfig.ARRAY_CONFIG_UNSPECIFIED; } /** * * *
-       * Indicates that this field supports operations on `array_value`s.
+       * Optional. The language to use for text search indexes. Used as the
+       * default language if not overridden at the document level by specifying
+       * the `text_language_override_field`. The language is specified as a BCP 47
+       * language code.
+       * For indexes with MONGODB_COMPATIBLE_API ApiScope: If unspecified, the
+       * default language is English.
+       * For indexes with `ANY_API` ApiScope: If unspecified, the default behavior
+       * is autodetect.
        * 
* - * .google.firestore.admin.v1.Index.IndexField.ArrayConfig array_config = 3; + * string text_language = 1 [(.google.api.field_behavior) = OPTIONAL]; * - * @param value The arrayConfig to set. + * @param value The textLanguage to set. * @return This builder for chaining. */ - public Builder setArrayConfig( - com.google.firestore.admin.v1.Index.IndexField.ArrayConfig value) { + public Builder setTextLanguage(java.lang.String value) { if (value == null) { throw new NullPointerException(); } - valueModeCase_ = 3; - valueMode_ = value.getNumber(); + textLanguage_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -3953,274 +9406,211 @@ public Builder setArrayConfig( * * *
-       * Indicates that this field supports operations on `array_value`s.
+       * Optional. The language to use for text search indexes. Used as the
+       * default language if not overridden at the document level by specifying
+       * the `text_language_override_field`. The language is specified as a BCP 47
+       * language code.
+       * For indexes with MONGODB_COMPATIBLE_API ApiScope: If unspecified, the
+       * default language is English.
+       * For indexes with `ANY_API` ApiScope: If unspecified, the default behavior
+       * is autodetect.
        * 
* - * .google.firestore.admin.v1.Index.IndexField.ArrayConfig array_config = 3; + * string text_language = 1 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ - public Builder clearArrayConfig() { - if (valueModeCase_ == 3) { - valueModeCase_ = 0; - valueMode_ = null; - onChanged(); - } + public Builder clearTextLanguage() { + textLanguage_ = getDefaultInstance().getTextLanguage(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); return this; } - private com.google.protobuf.SingleFieldBuilder< - com.google.firestore.admin.v1.Index.IndexField.VectorConfig, - com.google.firestore.admin.v1.Index.IndexField.VectorConfig.Builder, - com.google.firestore.admin.v1.Index.IndexField.VectorConfigOrBuilder> - vectorConfigBuilder_; - - /** - * - * - *
-       * Indicates that this field supports nearest neighbor and distance
-       * operations on vector.
-       * 
- * - * .google.firestore.admin.v1.Index.IndexField.VectorConfig vector_config = 4; - * - * @return Whether the vectorConfig field is set. - */ - @java.lang.Override - public boolean hasVectorConfig() { - return valueModeCase_ == 4; - } - /** * * *
-       * Indicates that this field supports nearest neighbor and distance
-       * operations on vector.
+       * Optional. The language to use for text search indexes. Used as the
+       * default language if not overridden at the document level by specifying
+       * the `text_language_override_field`. The language is specified as a BCP 47
+       * language code.
+       * For indexes with MONGODB_COMPATIBLE_API ApiScope: If unspecified, the
+       * default language is English.
+       * For indexes with `ANY_API` ApiScope: If unspecified, the default behavior
+       * is autodetect.
        * 
* - * .google.firestore.admin.v1.Index.IndexField.VectorConfig vector_config = 4; - * - * @return The vectorConfig. - */ - @java.lang.Override - public com.google.firestore.admin.v1.Index.IndexField.VectorConfig getVectorConfig() { - if (vectorConfigBuilder_ == null) { - if (valueModeCase_ == 4) { - return (com.google.firestore.admin.v1.Index.IndexField.VectorConfig) valueMode_; - } - return com.google.firestore.admin.v1.Index.IndexField.VectorConfig.getDefaultInstance(); - } else { - if (valueModeCase_ == 4) { - return vectorConfigBuilder_.getMessage(); - } - return com.google.firestore.admin.v1.Index.IndexField.VectorConfig.getDefaultInstance(); - } - } - - /** - * + * string text_language = 1 [(.google.api.field_behavior) = OPTIONAL]; * - *
-       * Indicates that this field supports nearest neighbor and distance
-       * operations on vector.
-       * 
- * - * .google.firestore.admin.v1.Index.IndexField.VectorConfig vector_config = 4; + * @param value The bytes for textLanguage to set. + * @return This builder for chaining. */ - public Builder setVectorConfig( - com.google.firestore.admin.v1.Index.IndexField.VectorConfig value) { - if (vectorConfigBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - valueMode_ = value; - onChanged(); - } else { - vectorConfigBuilder_.setMessage(value); + public Builder setTextLanguageBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } - valueModeCase_ = 4; + checkByteStringIsUtf8(value); + textLanguage_ = value; + bitField0_ |= 0x00000001; + onChanged(); return this; } - /** - * - * - *
-       * Indicates that this field supports nearest neighbor and distance
-       * operations on vector.
-       * 
- * - * .google.firestore.admin.v1.Index.IndexField.VectorConfig vector_config = 4; - */ - public Builder setVectorConfig( - com.google.firestore.admin.v1.Index.IndexField.VectorConfig.Builder builderForValue) { - if (vectorConfigBuilder_ == null) { - valueMode_ = builderForValue.build(); - onChanged(); - } else { - vectorConfigBuilder_.setMessage(builderForValue.build()); - } - valueModeCase_ = 4; - return this; - } + private java.lang.Object textLanguageOverrideFieldPath_ = ""; /** * * *
-       * Indicates that this field supports nearest neighbor and distance
-       * operations on vector.
+       * Optional. The field in the document that specifies which language to use
+       * for that specific document. For indexes with MONGODB_COMPATIBLE_API
+       * ApiScope: if unspecified, the language is taken from the "language" field
+       * if it exists or from `text_language` if it does not.
        * 
* - * .google.firestore.admin.v1.Index.IndexField.VectorConfig vector_config = 4; + * + * string text_language_override_field_path = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The textLanguageOverrideFieldPath. */ - public Builder mergeVectorConfig( - com.google.firestore.admin.v1.Index.IndexField.VectorConfig value) { - if (vectorConfigBuilder_ == null) { - if (valueModeCase_ == 4 - && valueMode_ - != com.google.firestore.admin.v1.Index.IndexField.VectorConfig - .getDefaultInstance()) { - valueMode_ = - com.google.firestore.admin.v1.Index.IndexField.VectorConfig.newBuilder( - (com.google.firestore.admin.v1.Index.IndexField.VectorConfig) valueMode_) - .mergeFrom(value) - .buildPartial(); - } else { - valueMode_ = value; - } - onChanged(); + public java.lang.String getTextLanguageOverrideFieldPath() { + java.lang.Object ref = textLanguageOverrideFieldPath_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + textLanguageOverrideFieldPath_ = s; + return s; } else { - if (valueModeCase_ == 4) { - vectorConfigBuilder_.mergeFrom(value); - } else { - vectorConfigBuilder_.setMessage(value); - } + return (java.lang.String) ref; } - valueModeCase_ = 4; - return this; } /** * * *
-       * Indicates that this field supports nearest neighbor and distance
-       * operations on vector.
+       * Optional. The field in the document that specifies which language to use
+       * for that specific document. For indexes with MONGODB_COMPATIBLE_API
+       * ApiScope: if unspecified, the language is taken from the "language" field
+       * if it exists or from `text_language` if it does not.
        * 
* - * .google.firestore.admin.v1.Index.IndexField.VectorConfig vector_config = 4; + * + * string text_language_override_field_path = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The bytes for textLanguageOverrideFieldPath. */ - public Builder clearVectorConfig() { - if (vectorConfigBuilder_ == null) { - if (valueModeCase_ == 4) { - valueModeCase_ = 0; - valueMode_ = null; - onChanged(); - } - } else { - if (valueModeCase_ == 4) { - valueModeCase_ = 0; - valueMode_ = null; - } - vectorConfigBuilder_.clear(); + public com.google.protobuf.ByteString getTextLanguageOverrideFieldPathBytes() { + java.lang.Object ref = textLanguageOverrideFieldPath_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + textLanguageOverrideFieldPath_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; } - return this; } /** * * *
-       * Indicates that this field supports nearest neighbor and distance
-       * operations on vector.
+       * Optional. The field in the document that specifies which language to use
+       * for that specific document. For indexes with MONGODB_COMPATIBLE_API
+       * ApiScope: if unspecified, the language is taken from the "language" field
+       * if it exists or from `text_language` if it does not.
        * 
* - * .google.firestore.admin.v1.Index.IndexField.VectorConfig vector_config = 4; + * + * string text_language_override_field_path = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @param value The textLanguageOverrideFieldPath to set. + * @return This builder for chaining. */ - public com.google.firestore.admin.v1.Index.IndexField.VectorConfig.Builder - getVectorConfigBuilder() { - return internalGetVectorConfigFieldBuilder().getBuilder(); + public Builder setTextLanguageOverrideFieldPath(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + textLanguageOverrideFieldPath_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; } /** * * *
-       * Indicates that this field supports nearest neighbor and distance
-       * operations on vector.
+       * Optional. The field in the document that specifies which language to use
+       * for that specific document. For indexes with MONGODB_COMPATIBLE_API
+       * ApiScope: if unspecified, the language is taken from the "language" field
+       * if it exists or from `text_language` if it does not.
        * 
* - * .google.firestore.admin.v1.Index.IndexField.VectorConfig vector_config = 4; + * + * string text_language_override_field_path = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return This builder for chaining. */ - @java.lang.Override - public com.google.firestore.admin.v1.Index.IndexField.VectorConfigOrBuilder - getVectorConfigOrBuilder() { - if ((valueModeCase_ == 4) && (vectorConfigBuilder_ != null)) { - return vectorConfigBuilder_.getMessageOrBuilder(); - } else { - if (valueModeCase_ == 4) { - return (com.google.firestore.admin.v1.Index.IndexField.VectorConfig) valueMode_; - } - return com.google.firestore.admin.v1.Index.IndexField.VectorConfig.getDefaultInstance(); - } + public Builder clearTextLanguageOverrideFieldPath() { + textLanguageOverrideFieldPath_ = getDefaultInstance().getTextLanguageOverrideFieldPath(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; } /** * * *
-       * Indicates that this field supports nearest neighbor and distance
-       * operations on vector.
+       * Optional. The field in the document that specifies which language to use
+       * for that specific document. For indexes with MONGODB_COMPATIBLE_API
+       * ApiScope: if unspecified, the language is taken from the "language" field
+       * if it exists or from `text_language` if it does not.
        * 
* - * .google.firestore.admin.v1.Index.IndexField.VectorConfig vector_config = 4; + * + * string text_language_override_field_path = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @param value The bytes for textLanguageOverrideFieldPath to set. + * @return This builder for chaining. */ - private com.google.protobuf.SingleFieldBuilder< - com.google.firestore.admin.v1.Index.IndexField.VectorConfig, - com.google.firestore.admin.v1.Index.IndexField.VectorConfig.Builder, - com.google.firestore.admin.v1.Index.IndexField.VectorConfigOrBuilder> - internalGetVectorConfigFieldBuilder() { - if (vectorConfigBuilder_ == null) { - if (!(valueModeCase_ == 4)) { - valueMode_ = - com.google.firestore.admin.v1.Index.IndexField.VectorConfig.getDefaultInstance(); - } - vectorConfigBuilder_ = - new com.google.protobuf.SingleFieldBuilder< - com.google.firestore.admin.v1.Index.IndexField.VectorConfig, - com.google.firestore.admin.v1.Index.IndexField.VectorConfig.Builder, - com.google.firestore.admin.v1.Index.IndexField.VectorConfigOrBuilder>( - (com.google.firestore.admin.v1.Index.IndexField.VectorConfig) valueMode_, - getParentForChildren(), - isClean()); - valueMode_ = null; + public Builder setTextLanguageOverrideFieldPathBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } - valueModeCase_ = 4; + checkByteStringIsUtf8(value); + textLanguageOverrideFieldPath_ = value; + bitField0_ |= 0x00000002; onChanged(); - return vectorConfigBuilder_; + return this; } - // @@protoc_insertion_point(builder_scope:google.firestore.admin.v1.Index.IndexField) + // @@protoc_insertion_point(builder_scope:google.firestore.admin.v1.Index.SearchIndexOptions) } - // @@protoc_insertion_point(class_scope:google.firestore.admin.v1.Index.IndexField) - private static final com.google.firestore.admin.v1.Index.IndexField DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:google.firestore.admin.v1.Index.SearchIndexOptions) + private static final com.google.firestore.admin.v1.Index.SearchIndexOptions DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new com.google.firestore.admin.v1.Index.IndexField(); + DEFAULT_INSTANCE = new com.google.firestore.admin.v1.Index.SearchIndexOptions(); } - public static com.google.firestore.admin.v1.Index.IndexField getDefaultInstance() { + public static com.google.firestore.admin.v1.Index.SearchIndexOptions getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { @java.lang.Override - public IndexField parsePartialFrom( + public SearchIndexOptions parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { @@ -4240,21 +9630,22 @@ public IndexField parsePartialFrom( } }; - public static com.google.protobuf.Parser parser() { + public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser getParserForType() { + public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override - public com.google.firestore.admin.v1.Index.IndexField getDefaultInstanceForType() { + public com.google.firestore.admin.v1.Index.SearchIndexOptions getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } + private int bitField0_; public static final int NAME_FIELD_NUMBER = 1; @SuppressWarnings("serial") @@ -4669,6 +10060,72 @@ public boolean getUnique() { return unique_; } + public static final int SEARCH_INDEX_OPTIONS_FIELD_NUMBER = 9; + private com.google.firestore.admin.v1.Index.SearchIndexOptions searchIndexOptions_; + + /** + * + * + *
+   * Optional. Options for search indexes that are at the index definition
+   * level. This field is only currently supported for indexes with
+   * MONGODB_COMPATIBLE_API ApiScope.
+   * 
+ * + * + * .google.firestore.admin.v1.Index.SearchIndexOptions search_index_options = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the searchIndexOptions field is set. + */ + @java.lang.Override + public boolean hasSearchIndexOptions() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Optional. Options for search indexes that are at the index definition
+   * level. This field is only currently supported for indexes with
+   * MONGODB_COMPATIBLE_API ApiScope.
+   * 
+ * + * + * .google.firestore.admin.v1.Index.SearchIndexOptions search_index_options = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The searchIndexOptions. + */ + @java.lang.Override + public com.google.firestore.admin.v1.Index.SearchIndexOptions getSearchIndexOptions() { + return searchIndexOptions_ == null + ? com.google.firestore.admin.v1.Index.SearchIndexOptions.getDefaultInstance() + : searchIndexOptions_; + } + + /** + * + * + *
+   * Optional. Options for search indexes that are at the index definition
+   * level. This field is only currently supported for indexes with
+   * MONGODB_COMPATIBLE_API ApiScope.
+   * 
+ * + * + * .google.firestore.admin.v1.Index.SearchIndexOptions search_index_options = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.firestore.admin.v1.Index.SearchIndexOptionsOrBuilder + getSearchIndexOptionsOrBuilder() { + return searchIndexOptions_ == null + ? com.google.firestore.admin.v1.Index.SearchIndexOptions.getDefaultInstance() + : searchIndexOptions_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -4708,6 +10165,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (shardCount_ != 0) { output.writeInt32(8, shardCount_); } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(9, getSearchIndexOptions()); + } if (unique_ != false) { output.writeBool(10, unique_); } @@ -4745,6 +10205,9 @@ public int getSerializedSize() { if (shardCount_ != 0) { size += com.google.protobuf.CodedOutputStream.computeInt32Size(8, shardCount_); } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, getSearchIndexOptions()); + } if (unique_ != false) { size += com.google.protobuf.CodedOutputStream.computeBoolSize(10, unique_); } @@ -4772,6 +10235,10 @@ public boolean equals(final java.lang.Object obj) { if (getMultikey() != other.getMultikey()) return false; if (getShardCount() != other.getShardCount()) return false; if (getUnique() != other.getUnique()) return false; + if (hasSearchIndexOptions() != other.hasSearchIndexOptions()) return false; + if (hasSearchIndexOptions()) { + if (!getSearchIndexOptions().equals(other.getSearchIndexOptions())) return false; + } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -4803,6 +10270,10 @@ public int hashCode() { hash = (53 * hash) + getShardCount(); hash = (37 * hash) + UNIQUE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getUnique()); + if (hasSearchIndexOptions()) { + hash = (37 * hash) + SEARCH_INDEX_OPTIONS_FIELD_NUMBER; + hash = (53 * hash) + getSearchIndexOptions().hashCode(); + } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -4933,10 +10404,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { } // Construct using com.google.firestore.admin.v1.Index.newBuilder() - private Builder() {} + private Builder() { + maybeForceBuilderInitialization(); + } private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + internalGetFieldsFieldBuilder(); + internalGetSearchIndexOptionsFieldBuilder(); + } } @java.lang.Override @@ -4958,6 +10439,11 @@ public Builder clear() { multikey_ = false; shardCount_ = 0; unique_ = false; + searchIndexOptions_ = null; + if (searchIndexOptionsBuilder_ != null) { + searchIndexOptionsBuilder_.dispose(); + searchIndexOptionsBuilder_ = null; + } return this; } @@ -5030,6 +10516,15 @@ private void buildPartial0(com.google.firestore.admin.v1.Index result) { if (((from_bitField0_ & 0x00000100) != 0)) { result.unique_ = unique_; } + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000200) != 0)) { + result.searchIndexOptions_ = + searchIndexOptionsBuilder_ == null + ? searchIndexOptions_ + : searchIndexOptionsBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + result.bitField0_ |= to_bitField0_; } @java.lang.Override @@ -5097,6 +10592,9 @@ public Builder mergeFrom(com.google.firestore.admin.v1.Index other) { if (other.getUnique() != false) { setUnique(other.getUnique()); } + if (other.hasSearchIndexOptions()) { + mergeSearchIndexOptions(other.getSearchIndexOptions()); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -5178,6 +10676,13 @@ public Builder mergeFrom( bitField0_ |= 0x00000080; break; } // case 64 + case 74: + { + input.readMessage( + internalGetSearchIndexOptionsFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000200; + break; + } // case 74 case 80: { unique_ = input.readBool(); @@ -6488,6 +11993,242 @@ public Builder clearUnique() { return this; } + private com.google.firestore.admin.v1.Index.SearchIndexOptions searchIndexOptions_; + private com.google.protobuf.SingleFieldBuilder< + com.google.firestore.admin.v1.Index.SearchIndexOptions, + com.google.firestore.admin.v1.Index.SearchIndexOptions.Builder, + com.google.firestore.admin.v1.Index.SearchIndexOptionsOrBuilder> + searchIndexOptionsBuilder_; + + /** + * + * + *
+     * Optional. Options for search indexes that are at the index definition
+     * level. This field is only currently supported for indexes with
+     * MONGODB_COMPATIBLE_API ApiScope.
+     * 
+ * + * + * .google.firestore.admin.v1.Index.SearchIndexOptions search_index_options = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the searchIndexOptions field is set. + */ + public boolean hasSearchIndexOptions() { + return ((bitField0_ & 0x00000200) != 0); + } + + /** + * + * + *
+     * Optional. Options for search indexes that are at the index definition
+     * level. This field is only currently supported for indexes with
+     * MONGODB_COMPATIBLE_API ApiScope.
+     * 
+ * + * + * .google.firestore.admin.v1.Index.SearchIndexOptions search_index_options = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The searchIndexOptions. + */ + public com.google.firestore.admin.v1.Index.SearchIndexOptions getSearchIndexOptions() { + if (searchIndexOptionsBuilder_ == null) { + return searchIndexOptions_ == null + ? com.google.firestore.admin.v1.Index.SearchIndexOptions.getDefaultInstance() + : searchIndexOptions_; + } else { + return searchIndexOptionsBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Optional. Options for search indexes that are at the index definition
+     * level. This field is only currently supported for indexes with
+     * MONGODB_COMPATIBLE_API ApiScope.
+     * 
+ * + * + * .google.firestore.admin.v1.Index.SearchIndexOptions search_index_options = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setSearchIndexOptions( + com.google.firestore.admin.v1.Index.SearchIndexOptions value) { + if (searchIndexOptionsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + searchIndexOptions_ = value; + } else { + searchIndexOptionsBuilder_.setMessage(value); + } + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. Options for search indexes that are at the index definition
+     * level. This field is only currently supported for indexes with
+     * MONGODB_COMPATIBLE_API ApiScope.
+     * 
+ * + * + * .google.firestore.admin.v1.Index.SearchIndexOptions search_index_options = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setSearchIndexOptions( + com.google.firestore.admin.v1.Index.SearchIndexOptions.Builder builderForValue) { + if (searchIndexOptionsBuilder_ == null) { + searchIndexOptions_ = builderForValue.build(); + } else { + searchIndexOptionsBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. Options for search indexes that are at the index definition
+     * level. This field is only currently supported for indexes with
+     * MONGODB_COMPATIBLE_API ApiScope.
+     * 
+ * + * + * .google.firestore.admin.v1.Index.SearchIndexOptions search_index_options = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeSearchIndexOptions( + com.google.firestore.admin.v1.Index.SearchIndexOptions value) { + if (searchIndexOptionsBuilder_ == null) { + if (((bitField0_ & 0x00000200) != 0) + && searchIndexOptions_ != null + && searchIndexOptions_ + != com.google.firestore.admin.v1.Index.SearchIndexOptions.getDefaultInstance()) { + getSearchIndexOptionsBuilder().mergeFrom(value); + } else { + searchIndexOptions_ = value; + } + } else { + searchIndexOptionsBuilder_.mergeFrom(value); + } + if (searchIndexOptions_ != null) { + bitField0_ |= 0x00000200; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Optional. Options for search indexes that are at the index definition
+     * level. This field is only currently supported for indexes with
+     * MONGODB_COMPATIBLE_API ApiScope.
+     * 
+ * + * + * .google.firestore.admin.v1.Index.SearchIndexOptions search_index_options = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearSearchIndexOptions() { + bitField0_ = (bitField0_ & ~0x00000200); + searchIndexOptions_ = null; + if (searchIndexOptionsBuilder_ != null) { + searchIndexOptionsBuilder_.dispose(); + searchIndexOptionsBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. Options for search indexes that are at the index definition
+     * level. This field is only currently supported for indexes with
+     * MONGODB_COMPATIBLE_API ApiScope.
+     * 
+ * + * + * .google.firestore.admin.v1.Index.SearchIndexOptions search_index_options = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.firestore.admin.v1.Index.SearchIndexOptions.Builder + getSearchIndexOptionsBuilder() { + bitField0_ |= 0x00000200; + onChanged(); + return internalGetSearchIndexOptionsFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Optional. Options for search indexes that are at the index definition
+     * level. This field is only currently supported for indexes with
+     * MONGODB_COMPATIBLE_API ApiScope.
+     * 
+ * + * + * .google.firestore.admin.v1.Index.SearchIndexOptions search_index_options = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.firestore.admin.v1.Index.SearchIndexOptionsOrBuilder + getSearchIndexOptionsOrBuilder() { + if (searchIndexOptionsBuilder_ != null) { + return searchIndexOptionsBuilder_.getMessageOrBuilder(); + } else { + return searchIndexOptions_ == null + ? com.google.firestore.admin.v1.Index.SearchIndexOptions.getDefaultInstance() + : searchIndexOptions_; + } + } + + /** + * + * + *
+     * Optional. Options for search indexes that are at the index definition
+     * level. This field is only currently supported for indexes with
+     * MONGODB_COMPATIBLE_API ApiScope.
+     * 
+ * + * + * .google.firestore.admin.v1.Index.SearchIndexOptions search_index_options = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.firestore.admin.v1.Index.SearchIndexOptions, + com.google.firestore.admin.v1.Index.SearchIndexOptions.Builder, + com.google.firestore.admin.v1.Index.SearchIndexOptionsOrBuilder> + internalGetSearchIndexOptionsFieldBuilder() { + if (searchIndexOptionsBuilder_ == null) { + searchIndexOptionsBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.firestore.admin.v1.Index.SearchIndexOptions, + com.google.firestore.admin.v1.Index.SearchIndexOptions.Builder, + com.google.firestore.admin.v1.Index.SearchIndexOptionsOrBuilder>( + getSearchIndexOptions(), getParentForChildren(), isClean()); + searchIndexOptions_ = null; + } + return searchIndexOptionsBuilder_; + } + // @@protoc_insertion_point(builder_scope:google.firestore.admin.v1.Index) } diff --git a/proto-google-cloud-firestore-admin-v1/src/main/java/com/google/firestore/admin/v1/IndexOrBuilder.java b/proto-google-cloud-firestore-admin-v1/src/main/java/com/google/firestore/admin/v1/IndexOrBuilder.java index ac40f5d483..4efa0e315f 100644 --- a/proto-google-cloud-firestore-admin-v1/src/main/java/com/google/firestore/admin/v1/IndexOrBuilder.java +++ b/proto-google-cloud-firestore-admin-v1/src/main/java/com/google/firestore/admin/v1/IndexOrBuilder.java @@ -330,4 +330,53 @@ public interface IndexOrBuilder * @return The unique. */ boolean getUnique(); + + /** + * + * + *
+   * Optional. Options for search indexes that are at the index definition
+   * level. This field is only currently supported for indexes with
+   * MONGODB_COMPATIBLE_API ApiScope.
+   * 
+ * + * + * .google.firestore.admin.v1.Index.SearchIndexOptions search_index_options = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the searchIndexOptions field is set. + */ + boolean hasSearchIndexOptions(); + + /** + * + * + *
+   * Optional. Options for search indexes that are at the index definition
+   * level. This field is only currently supported for indexes with
+   * MONGODB_COMPATIBLE_API ApiScope.
+   * 
+ * + * + * .google.firestore.admin.v1.Index.SearchIndexOptions search_index_options = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The searchIndexOptions. + */ + com.google.firestore.admin.v1.Index.SearchIndexOptions getSearchIndexOptions(); + + /** + * + * + *
+   * Optional. Options for search indexes that are at the index definition
+   * level. This field is only currently supported for indexes with
+   * MONGODB_COMPATIBLE_API ApiScope.
+   * 
+ * + * + * .google.firestore.admin.v1.Index.SearchIndexOptions search_index_options = 9 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.firestore.admin.v1.Index.SearchIndexOptionsOrBuilder getSearchIndexOptionsOrBuilder(); } diff --git a/proto-google-cloud-firestore-admin-v1/src/main/java/com/google/firestore/admin/v1/IndexProto.java b/proto-google-cloud-firestore-admin-v1/src/main/java/com/google/firestore/admin/v1/IndexProto.java index 2f23955b7d..635837e1b4 100644 --- a/proto-google-cloud-firestore-admin-v1/src/main/java/com/google/firestore/admin/v1/IndexProto.java +++ b/proto-google-cloud-firestore-admin-v1/src/main/java/com/google/firestore/admin/v1/IndexProto.java @@ -56,6 +56,26 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r internal_static_google_firestore_admin_v1_Index_IndexField_VectorConfig_FlatIndex_descriptor; static final com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_google_firestore_admin_v1_Index_IndexField_VectorConfig_FlatIndex_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchTextIndexSpec_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchTextIndexSpec_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchTextSpec_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchTextSpec_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchGeoSpec_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchGeoSpec_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_firestore_admin_v1_Index_SearchIndexOptions_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_firestore_admin_v1_Index_SearchIndexOptions_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { return descriptor; @@ -68,7 +88,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "\n" + "%google/firestore/admin/v1/index.proto\022" + "\031google.firestore.admin.v1\032\037google/api/f" - + "ield_behavior.proto\032\031google/api/resource.proto\"\202\013\n" + + "ield_behavior.proto\032\031google/api/resource.proto\"\365\022\n" + "\005Index\022\014\n" + "\004name\030\001 \001(\t\022@\n" + "\013query_scope\030\002 \001(\0162+.google.firestore.admin.v1.Index.QueryScope\022<\n" @@ -80,21 +100,46 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\010multikey\030\007 \001(\010B\003\340A\001\022\030\n" + "\013shard_count\030\010 \001(\005B\003\340A\001\022\023\n" + "\006unique\030\n" - + " \001(\010B\003\340A\001\032\242\004\n\n" + + " \001(\010B\003\340A\001\022V\n" + + "\024search_index_options\030\t \001(\01323" + + ".google.firestore.admin.v1.Index.SearchIndexOptionsB\003\340A\001\032\333\n\n\n" + "IndexField\022\022\n\n" + "field_path\030\001 \001(\t\022B\n" - + "\005order\030\002" - + " \001(\01621.google.firestore.admin.v1.Index.IndexField.OrderH\000\022O\n" - + "\014array_config\030\003" - + " \001(\01627.google.firestore.admin.v1.Index.IndexField.ArrayConfigH\000\022Q\n\r" - + "vector_config\030\004" - + " \001(\01328.google.firestore.admin.v1.Index.IndexField.VectorConfigH\000\032\217\001\n" + + "\005order\030\002 \001(\01621.google.fire" + + "store.admin.v1.Index.IndexField.OrderH\000\022O\n" + + "\014array_config\030\003 \001(\01627.google.firestore" + + ".admin.v1.Index.IndexField.ArrayConfigH\000\022Q\n\r" + + "vector_config\030\004 \001(\01328.google.firesto" + + "re.admin.v1.Index.IndexField.VectorConfigH\000\022Q\n\r" + + "search_config\030\005 \001(\01328.google.fire" + + "store.admin.v1.Index.IndexField.SearchConfigH\000\032\217\001\n" + "\014VectorConfig\022\026\n" + "\tdimension\030\001 \001(\005B\003\340A\002\022R\n" - + "\004flat\030\002 \001(\0132B.google.firestore.admin.v1.I" - + "ndex.IndexField.VectorConfig.FlatIndexH\000\032\013\n" + + "\004flat\030\002 \001(\0132B.google.firestore" + + ".admin.v1.Index.IndexField.VectorConfig.FlatIndexH\000\032\013\n" + "\tFlatIndexB\006\n" - + "\004type\"=\n" + + "\004type\032\343\005\n" + + "\014SearchConfig\022_\n" + + "\ttext_spec\030\001 \001(\0132G.google.fi" + + "restore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpecB\003\340A\001\022]\n" + + "\010geo_spec\030\002 \001(\0132F.google.firestore.admin.v1.Index.I" + + "ndexField.SearchConfig.SearchGeoSpecB\003\340A\001\032\327\001\n" + + "\023SearchTextIndexSpec\022_\n\n" + + "index_type\030\001 \001(\0162F.google.firestore.admin.v1.Index." + + "IndexField.SearchConfig.TextIndexTypeB\003\340A\002\022_\n\n" + + "match_type\030\002 \001(\0162F.google.firestor" + + "e.admin.v1.Index.IndexField.SearchConfig.TextMatchTypeB\003\340A\002\032x\n" + + "\016SearchTextSpec\022f\n" + + "\013index_specs\030\001 \003(\0132L.google.firestore.ad" + + "min.v1.Index.IndexField.SearchConfig.SearchTextIndexSpecB\003\340A\002\0328\n\r" + + "SearchGeoSpec\022\'\n" + + "\032geo_json_indexing_disabled\030\001 \001(\010B\003\340A\001\"?\n\r" + + "TextIndexType\022\037\n" + + "\033TEXT_INDEX_TYPE_UNSPECIFIED\020\000\022\r\n" + + "\tTOKENIZED\020\001\"D\n\r" + + "TextMatchType\022\037\n" + + "\033TEXT_MATCH_TYPE_UNSPECIFIED\020\000\022\022\n" + + "\016MATCH_GLOBALLY\020\001\"=\n" + "\005Order\022\025\n" + "\021ORDER_UNSPECIFIED\020\000\022\r\n" + "\tASCENDING\020\001\022\016\n\n" @@ -102,8 +147,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\013ArrayConfig\022\034\n" + "\030ARRAY_CONFIG_UNSPECIFIED\020\000\022\014\n" + "\010CONTAINS\020\001B\014\n\n" - + "value_mode\"i\n" - + "\n" + + "value_mode\032`\n" + + "\022SearchIndexOptions\022\032\n\r" + + "text_language\030\001 \001(\tB\003\340A\001\022.\n" + + "!text_language_override_field_path\030\002 \001(\tB\003\340A\001\"i\n\n" + "QueryScope\022\033\n" + "\027QUERY_SCOPE_UNSPECIFIED\020\000\022\016\n\n" + "COLLECTION\020\001\022\024\n" @@ -123,13 +170,13 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "SPARSE_ALL\020\001\022\016\n\n" + "SPARSE_ANY\020\002\022\t\n" + "\005DENSE\020\003:z\352Aw\n" - + "\036firestore.googleapis.com/Index\022Uprojects/{project}/databas" - + "es/{database}/collectionGroups/{collection}/indexes/{index}B\331\001\n" + + "\036firestore.googleapis.com/Index\022Uprojects/{proje" + + "ct}/databases/{database}/collectionGroups/{collection}/indexes/{index}B\331\001\n" + "\035com.google.firestore.admin.v1B\n" - + "IndexProtoP\001Z9cloud.google.com/go/firestore/apiv1/admin/adminpb;a" - + "dminpb\242\002\004GCFS\252\002\037Google.Cloud.Firestore.A" - + "dmin.V1\312\002\037Google\\Cloud\\Firestore\\Admin\\V" - + "1\352\002#Google::Cloud::Firestore::Admin::V1b\006proto3" + + "IndexProtoP\001Z9cloud.google.com/go/firestore/apiv1/admi" + + "n/adminpb;adminpb\242\002\004GCFS\252\002\037Google.Cloud." + + "Firestore.Admin.V1\312\002\037Google\\Cloud\\Firest" + + "ore\\Admin\\V1\352\002#Google::Cloud::Firestore::Admin::V1b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom( @@ -152,6 +199,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Multikey", "ShardCount", "Unique", + "SearchIndexOptions", }); internal_static_google_firestore_admin_v1_Index_IndexField_descriptor = internal_static_google_firestore_admin_v1_Index_descriptor.getNestedType(0); @@ -159,7 +207,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_google_firestore_admin_v1_Index_IndexField_descriptor, new java.lang.String[] { - "FieldPath", "Order", "ArrayConfig", "VectorConfig", "ValueMode", + "FieldPath", "Order", "ArrayConfig", "VectorConfig", "SearchConfig", "ValueMode", }); internal_static_google_firestore_admin_v1_Index_IndexField_VectorConfig_descriptor = internal_static_google_firestore_admin_v1_Index_IndexField_descriptor.getNestedType(0); @@ -176,6 +224,49 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_google_firestore_admin_v1_Index_IndexField_VectorConfig_FlatIndex_descriptor, new java.lang.String[] {}); + internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_descriptor = + internal_static_google_firestore_admin_v1_Index_IndexField_descriptor.getNestedType(1); + internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_descriptor, + new java.lang.String[] { + "TextSpec", "GeoSpec", + }); + internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchTextIndexSpec_descriptor = + internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_descriptor + .getNestedType(0); + internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchTextIndexSpec_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchTextIndexSpec_descriptor, + new java.lang.String[] { + "IndexType", "MatchType", + }); + internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchTextSpec_descriptor = + internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_descriptor + .getNestedType(1); + internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchTextSpec_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchTextSpec_descriptor, + new java.lang.String[] { + "IndexSpecs", + }); + internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchGeoSpec_descriptor = + internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_descriptor + .getNestedType(2); + internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchGeoSpec_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_firestore_admin_v1_Index_IndexField_SearchConfig_SearchGeoSpec_descriptor, + new java.lang.String[] { + "GeoJsonIndexingDisabled", + }); + internal_static_google_firestore_admin_v1_Index_SearchIndexOptions_descriptor = + internal_static_google_firestore_admin_v1_Index_descriptor.getNestedType(1); + internal_static_google_firestore_admin_v1_Index_SearchIndexOptions_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_firestore_admin_v1_Index_SearchIndexOptions_descriptor, + new java.lang.String[] { + "TextLanguage", "TextLanguageOverrideFieldPath", + }); descriptor.resolveAllFeaturesImmutable(); com.google.api.FieldBehaviorProto.getDescriptor(); com.google.api.ResourceProto.getDescriptor(); diff --git a/proto-google-cloud-firestore-admin-v1/src/main/proto/google/firestore/admin/v1/backup.proto b/proto-google-cloud-firestore-admin-v1/src/main/proto/google/firestore/admin/v1/backup.proto index 613eb1184b..f4ff835d0d 100644 --- a/proto-google-cloud-firestore-admin-v1/src/main/proto/google/firestore/admin/v1/backup.proto +++ b/proto-google-cloud-firestore-admin-v1/src/main/proto/google/firestore/admin/v1/backup.proto @@ -71,6 +71,11 @@ message Backup { // Output only. The unique resource name of the Backup. // // Format is `projects/{project}/locations/{location}/backups/{backup}`. + // + // The location in the name will be the Standard Managed Multi-Region (SMMR) + // location (e.g. `us`) if the backup was created with an SMMR location, or + // the Google Managed Multi-Region (GMMR) location (e.g. `nam5`) if the backup + // was created with a GMMR location. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Name of the Firestore database that the backup is from. diff --git a/proto-google-cloud-firestore-admin-v1/src/main/proto/google/firestore/admin/v1/index.proto b/proto-google-cloud-firestore-admin-v1/src/main/proto/google/firestore/admin/v1/index.proto index d98753ce49..c3f20c5bc2 100644 --- a/proto-google-cloud-firestore-admin-v1/src/main/proto/google/firestore/admin/v1/index.proto +++ b/proto-google-cloud-firestore-admin-v1/src/main/proto/google/firestore/admin/v1/index.proto @@ -115,6 +115,64 @@ message Index { } } + // The configuration for how to index a field for search. + message SearchConfig { + // Ways to index the text field value. + enum TextIndexType { + // The index type is unspecified. Not a valid option. + TEXT_INDEX_TYPE_UNSPECIFIED = 0; + + // Field values are tokenized. This is the only way currently supported + // for MONGODB_COMPATIBLE_API. + TOKENIZED = 1; + } + + // Types of text matches that are supported for the + // field. + enum TextMatchType { + // The match type is unspecified. Not a valid option. + TEXT_MATCH_TYPE_UNSPECIFIED = 0; + + // Match on any indexed field. This is the only way currently supported + // for MONGODB_COMPATIBLE_API. + MATCH_GLOBALLY = 1; + } + + // Specification of how the field should be indexed for search text + // indexes. + message SearchTextIndexSpec { + // Required. How to index the text field value. + TextIndexType index_type = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. How to match the text field value. + TextMatchType match_type = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // The specification for how to build a text search index for a field. + message SearchTextSpec { + // Required. Specifications for how the field should be indexed. + // Repeated so that the field can be indexed in multiple ways. + repeated SearchTextIndexSpec index_specs = 1 + [(google.api.field_behavior) = REQUIRED]; + } + + // The specification for how to build a geo search index for a field. + message SearchGeoSpec { + // Optional. Disables geoJSON indexing for the field. By default, + // geoJSON points are indexed. + bool geo_json_indexing_disabled = 1 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. The specification for building a text search index for a + // field. + SearchTextSpec text_spec = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The specification for building a geo search index for a + // field. + SearchGeoSpec geo_spec = 2 [(google.api.field_behavior) = OPTIONAL]; + } + // Can be __name__. // For single field indexes, this must match the name of the field or may // be omitted. @@ -132,6 +190,11 @@ message Index { // Indicates that this field supports nearest neighbor and distance // operations on vector. VectorConfig vector_config = 4; + + // Indicates that this field supports search operations. This field + // is only currently supported for indexes with MONGODB_COMPATIBLE_API + // ApiScope. + SearchConfig search_config = 5; } } @@ -233,6 +296,26 @@ message Index { DENSE = 3; } + // Options for search indexes at the definition level. + message SearchIndexOptions { + // Optional. The language to use for text search indexes. Used as the + // default language if not overridden at the document level by specifying + // the `text_language_override_field`. The language is specified as a BCP 47 + // language code. + // For indexes with MONGODB_COMPATIBLE_API ApiScope: If unspecified, the + // default language is English. + // For indexes with `ANY_API` ApiScope: If unspecified, the default behavior + // is autodetect. + string text_language = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The field in the document that specifies which language to use + // for that specific document. For indexes with MONGODB_COMPATIBLE_API + // ApiScope: if unspecified, the language is taken from the "language" field + // if it exists or from `text_language` if it does not. + string text_language_override_field_path = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + // Output only. A server defined name for this index. // The form of this name for composite indexes will be: // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{composite_index_id}` @@ -286,4 +369,10 @@ message Index { // Optional. Whether it is an unique index. Unique index ensures all values // for the indexed field(s) are unique across documents. bool unique = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Options for search indexes that are at the index definition + // level. This field is only currently supported for indexes with + // MONGODB_COMPATIBLE_API ApiScope. + SearchIndexOptions search_index_options = 9 + [(google.api.field_behavior) = OPTIONAL]; }