diff --git a/librarian.yaml b/librarian.yaml index c231d44b63e0..4ca5a08da4dd 100644 --- a/librarian.yaml +++ b/librarian.yaml @@ -211,11 +211,11 @@ libraries: - omit_common_resources: true path: google/cloud/advisorynotifications/v1 - name: google-cloud-agentidentity + version: 0.1.0 apis: - path: google/cloud/agentidentity/v1 - path: google/cloud/agentidentity/v1beta copyright_year: "2026" - version: 0.1.0 - name: google-cloud-agentregistry version: 0.2.0 apis: @@ -971,8 +971,9 @@ libraries: apis: - path: google/firestore/v1 - path: google/firestore/admin/v1 - - path: google/firestore/v1beta1 copyright_year: "2026" + keep: + - package.json nodejs: package_name: '@google-cloud/firestore-api' metadata_name_override: firestore-api diff --git a/packages/google-cloud-firestore-api/package.json b/packages/google-cloud-firestore-api/package.json index f82647609e9c..9c0fed9bdfad 100644 --- a/packages/google-cloud-firestore-api/package.json +++ b/packages/google-cloud-firestore-api/package.json @@ -11,6 +11,41 @@ "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/packages/google-firestore-admin", "author": "Google LLC", "main": "build/src/index.js", + "exports": { + ".": { + "types": "./build/src/index.d.ts", + "default": "./build/src/index.js" + }, + "./v1": { + "types": "./build/src/v1/index.d.ts", + "default": "./build/src/v1/index.js" + }, + "./v1/firestore_client_config.json": "./build/src/v1/firestore_client_config.json", + "./client_v1": { + "types": "./build/src/v1/firestore_client.d.ts", + "default": "./build/src/v1/firestore_client.js" + }, + "./admin_v1": { + "types": "./build/src/v1/firestore_admin_client.d.ts", + "default": "./build/src/v1/firestore_admin_client.js" + }, + "./protos": { + "types": "./build/protos/protos.d.ts", + "default": "./build/protos/protos.js" + }, + "./protos/protos.json": "./build/protos/protos.json", + "./build/protos/protos": { + "types": "./build/protos/protos.d.ts", + "default": "./build/protos/protos.js" + }, + "./build/protos/protos.json": "./build/protos/protos.json", + "./build/src/v1": { + "types": "./build/src/v1/index.d.ts", + "default": "./build/src/v1/index.js" + }, + "./build/src/v1/firestore_client_config.json": "./build/src/v1/firestore_client_config.json", + "./package.json": "./package.json" + }, "files": [ "build/src", "build/protos" @@ -40,7 +75,8 @@ "test": "c8 mocha --config ../../.mocharc.cjs build/test" }, "dependencies": { - "google-gax": "^6.0.0" + "google-gax": "^6.0.0", + "long": "^5.3.2" }, "devDependencies": { "@types/mocha": "^10.0.10", @@ -52,7 +88,6 @@ "jsdoc": "^4.0.5", "jsdoc-fresh": "^6.0.0", "jsdoc-region-tag": "^5.0.0", - "long": "^5.3.2", "mocha": "^11.7.4", "pack-n-play": "^5.0.0", "typescript": "5.8.3", diff --git a/packages/google-cloud-firestore-api/protos/google/firestore/v1beta1/common.proto b/packages/google-cloud-firestore-api/protos/google/firestore/v1beta1/common.proto deleted file mode 100644 index b18e53398b75..000000000000 --- a/packages/google-cloud-firestore-api/protos/google/firestore/v1beta1/common.proto +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2025 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.firestore.v1beta1; - -import "google/protobuf/timestamp.proto"; - -option csharp_namespace = "Google.Cloud.Firestore.V1Beta1"; -option go_package = "cloud.google.com/go/firestore/apiv1beta1/firestorepb;firestorepb"; -option java_multiple_files = true; -option java_outer_classname = "CommonProto"; -option java_package = "com.google.firestore.v1beta1"; -option objc_class_prefix = "GCFS"; -option php_namespace = "Google\\Cloud\\Firestore\\V1beta1"; -option ruby_package = "Google::Cloud::Firestore::V1beta1"; - -// A set of field paths on a document. -// Used to restrict a get or update operation on a document to a subset of its -// fields. -// This is different from standard field masks, as this is always scoped to a -// [Document][google.firestore.v1beta1.Document], and takes in account the dynamic nature of [Value][google.firestore.v1beta1.Value]. -message DocumentMask { - // The list of field paths in the mask. See [Document.fields][google.firestore.v1beta1.Document.fields] for a field - // path syntax reference. - repeated string field_paths = 1; -} - -// A precondition on a document, used for conditional operations. -message Precondition { - // The type of precondition. - oneof condition_type { - // When set to `true`, the target document must exist. - // When set to `false`, the target document must not exist. - bool exists = 1; - - // When set, the target document must exist and have been last updated at - // that time. - google.protobuf.Timestamp update_time = 2; - } -} - -// Options for creating a new transaction. -message TransactionOptions { - // Options for a transaction that can be used to read and write documents. - message ReadWrite { - // An optional transaction to retry. - bytes retry_transaction = 1; - } - - // Options for a transaction that can only be used to read documents. - message ReadOnly { - // The consistency mode for this transaction. If not set, defaults to strong - // consistency. - oneof consistency_selector { - // Reads documents at the given time. - // This may not be older than 60 seconds. - google.protobuf.Timestamp read_time = 2; - } - } - - // The mode of the transaction. - oneof mode { - // The transaction can only be used for read operations. - ReadOnly read_only = 2; - - // The transaction can be used for both read and write operations. - ReadWrite read_write = 3; - } -} diff --git a/packages/google-cloud-firestore-api/protos/google/firestore/v1beta1/document.proto b/packages/google-cloud-firestore-api/protos/google/firestore/v1beta1/document.proto deleted file mode 100644 index 36b30151cd6d..000000000000 --- a/packages/google-cloud-firestore-api/protos/google/firestore/v1beta1/document.proto +++ /dev/null @@ -1,149 +0,0 @@ -// Copyright 2025 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.firestore.v1beta1; - -import "google/protobuf/struct.proto"; -import "google/protobuf/timestamp.proto"; -import "google/type/latlng.proto"; - -option csharp_namespace = "Google.Cloud.Firestore.V1Beta1"; -option go_package = "cloud.google.com/go/firestore/apiv1beta1/firestorepb;firestorepb"; -option java_multiple_files = true; -option java_outer_classname = "DocumentProto"; -option java_package = "com.google.firestore.v1beta1"; -option objc_class_prefix = "GCFS"; -option php_namespace = "Google\\Cloud\\Firestore\\V1beta1"; -option ruby_package = "Google::Cloud::Firestore::V1beta1"; - -// A Firestore document. -// -// Must not exceed 1 MiB - 4 bytes. -message Document { - // The resource name of the document, for example - // `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - string name = 1; - - // The document's fields. - // - // The map keys represent field names. - // - // A simple field name contains only characters `a` to `z`, `A` to `Z`, - // `0` to `9`, or `_`, and must not start with `0` to `9`. For example, - // `foo_bar_17`. - // - // Field names matching the regular expression `__.*__` are reserved. Reserved - // field names are forbidden except in certain documented contexts. The map - // keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be - // empty. - // - // Field paths may be used in other contexts to refer to structured fields - // defined here. For `map_value`, the field path is represented by the simple - // or quoted field names of the containing fields, delimited by `.`. For - // example, the structured field - // `"foo" : { map_value: { "x&y" : { string_value: "hello" }}}` would be - // represented by the field path `foo.x&y`. - // - // Within a field path, a quoted field name starts and ends with `` ` `` and - // may contain any character. Some characters, including `` ` ``, must be - // escaped using a `\`. For example, `` `x&y` `` represents `x&y` and - // `` `bak\`tik` `` represents `` bak`tik ``. - map fields = 2; - - // Output only. The time at which the document was created. - // - // This value increases monotonically when a document is deleted then - // recreated. It can also be compared to values from other documents and - // the `read_time` of a query. - google.protobuf.Timestamp create_time = 3; - - // Output only. The time at which the document was last changed. - // - // This value is initially set to the `create_time` then increases - // monotonically with each change to the document. It can also be - // compared to values from other documents and the `read_time` of a query. - google.protobuf.Timestamp update_time = 4; -} - -// A message that can hold any of the supported value types. -message Value { - // Must have a value set. - oneof value_type { - // A null value. - google.protobuf.NullValue null_value = 11; - - // A boolean value. - bool boolean_value = 1; - - // An integer value. - int64 integer_value = 2; - - // A double value. - double double_value = 3; - - // A timestamp value. - // - // Precise only to microseconds. When stored, any additional precision is - // rounded down. - google.protobuf.Timestamp timestamp_value = 10; - - // A string value. - // - // The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. - // Only the first 1,500 bytes of the UTF-8 representation are considered by - // queries. - string string_value = 17; - - // A bytes value. - // - // Must not exceed 1 MiB - 89 bytes. - // Only the first 1,500 bytes are considered by queries. - bytes bytes_value = 18; - - // A reference to a document. For example: - // `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - string reference_value = 5; - - // A geo point value representing a point on the surface of Earth. - google.type.LatLng geo_point_value = 8; - - // An array value. - // - // Cannot directly contain another array value, though can contain an - // map which contains another array. - ArrayValue array_value = 9; - - // A map value. - MapValue map_value = 6; - } -} - -// An array value. -message ArrayValue { - // Values in the array. - repeated Value values = 1; -} - -// A map value. -message MapValue { - // The map's fields. - // - // The map keys represent field names. Field names matching the regular - // expression `__.*__` are reserved. Reserved field names are forbidden except - // in certain documented contexts. The map keys, represented as UTF-8, must - // not exceed 1,500 bytes and cannot be empty. - map fields = 1; -} diff --git a/packages/google-cloud-firestore-api/protos/google/firestore/v1beta1/firestore.proto b/packages/google-cloud-firestore-api/protos/google/firestore/v1beta1/firestore.proto deleted file mode 100644 index 07d4b3fe998b..000000000000 --- a/packages/google-cloud-firestore-api/protos/google/firestore/v1beta1/firestore.proto +++ /dev/null @@ -1,900 +0,0 @@ -// Copyright 2025 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.firestore.v1beta1; - -import "google/api/annotations.proto"; -import "google/api/client.proto"; -import "google/api/field_behavior.proto"; -import "google/firestore/v1beta1/common.proto"; -import "google/firestore/v1beta1/document.proto"; -import "google/firestore/v1beta1/query.proto"; -import "google/firestore/v1beta1/write.proto"; -import "google/protobuf/empty.proto"; -import "google/protobuf/timestamp.proto"; -import "google/rpc/status.proto"; - -option csharp_namespace = "Google.Cloud.Firestore.V1Beta1"; -option go_package = "cloud.google.com/go/firestore/apiv1beta1/firestorepb;firestorepb"; -option java_multiple_files = true; -option java_outer_classname = "FirestoreProto"; -option java_package = "com.google.firestore.v1beta1"; -option objc_class_prefix = "GCFS"; -option php_namespace = "Google\\Cloud\\Firestore\\V1beta1"; -option ruby_package = "Google::Cloud::Firestore::V1beta1"; - -// Specification of the Firestore API. - -// The Cloud Firestore service. -// -// Cloud Firestore is a fast, fully managed, serverless, cloud-native NoSQL -// document database that simplifies storing, syncing, and querying data for -// your mobile, web, and IoT apps at global scale. Its client libraries provide -// live synchronization and offline support, while its security features and -// integrations with Firebase and Google Cloud Platform (GCP) accelerate -// building truly serverless apps. -service Firestore { - option (google.api.default_host) = "firestore.googleapis.com"; - option (google.api.oauth_scopes) = - "https://www.googleapis.com/auth/cloud-platform," - "https://www.googleapis.com/auth/datastore"; - - // Gets a single document. - rpc GetDocument(GetDocumentRequest) returns (Document) { - option (google.api.http) = { - get: "/v1beta1/{name=projects/*/databases/*/documents/*/**}" - }; - } - - // Lists documents. - rpc ListDocuments(ListDocumentsRequest) returns (ListDocumentsResponse) { - option (google.api.http) = { - get: "/v1beta1/{parent=projects/*/databases/*/documents/*/**}/{collection_id}" - }; - } - - // Updates or inserts a document. - rpc UpdateDocument(UpdateDocumentRequest) returns (Document) { - option (google.api.http) = { - patch: "/v1beta1/{document.name=projects/*/databases/*/documents/*/**}" - body: "document" - }; - option (google.api.method_signature) = "document,update_mask"; - } - - // Deletes a document. - rpc DeleteDocument(DeleteDocumentRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - delete: "/v1beta1/{name=projects/*/databases/*/documents/*/**}" - }; - option (google.api.method_signature) = "name"; - } - - // Gets multiple documents. - // - // Documents returned by this method are not guaranteed to be returned in the - // same order that they were requested. - rpc BatchGetDocuments(BatchGetDocumentsRequest) returns (stream BatchGetDocumentsResponse) { - option (google.api.http) = { - post: "/v1beta1/{database=projects/*/databases/*}/documents:batchGet" - body: "*" - }; - } - - // Starts a new transaction. - rpc BeginTransaction(BeginTransactionRequest) returns (BeginTransactionResponse) { - option (google.api.http) = { - post: "/v1beta1/{database=projects/*/databases/*}/documents:beginTransaction" - body: "*" - }; - option (google.api.method_signature) = "database"; - } - - // Commits a transaction, while optionally updating documents. - rpc Commit(CommitRequest) returns (CommitResponse) { - option (google.api.http) = { - post: "/v1beta1/{database=projects/*/databases/*}/documents:commit" - body: "*" - }; - option (google.api.method_signature) = "database,writes"; - } - - // Rolls back a transaction. - rpc Rollback(RollbackRequest) returns (google.protobuf.Empty) { - option (google.api.http) = { - post: "/v1beta1/{database=projects/*/databases/*}/documents:rollback" - body: "*" - }; - option (google.api.method_signature) = "database,transaction"; - } - - // Runs a query. - rpc RunQuery(RunQueryRequest) returns (stream RunQueryResponse) { - option (google.api.http) = { - post: "/v1beta1/{parent=projects/*/databases/*/documents}:runQuery" - body: "*" - additional_bindings { - post: "/v1beta1/{parent=projects/*/databases/*/documents/*/**}:runQuery" - body: "*" - } - }; - } - - // Partitions a query by returning partition cursors that can be used to run - // the query in parallel. The returned partition cursors are split points that - // can be used by RunQuery as starting/end points for the query results. - rpc PartitionQuery(PartitionQueryRequest) returns (PartitionQueryResponse) { - option (google.api.http) = { - post: "/v1beta1/{parent=projects/*/databases/*/documents}:partitionQuery" - body: "*" - additional_bindings { - post: "/v1beta1/{parent=projects/*/databases/*/documents/*/**}:partitionQuery" - body: "*" - } - }; - } - - // Streams batches of document updates and deletes, in order. - rpc Write(stream WriteRequest) returns (stream WriteResponse) { - option (google.api.http) = { - post: "/v1beta1/{database=projects/*/databases/*}/documents:write" - body: "*" - }; - } - - // Listens to changes. - rpc Listen(stream ListenRequest) returns (stream ListenResponse) { - option (google.api.http) = { - post: "/v1beta1/{database=projects/*/databases/*}/documents:listen" - body: "*" - }; - } - - // Lists all the collection IDs underneath a document. - rpc ListCollectionIds(ListCollectionIdsRequest) returns (ListCollectionIdsResponse) { - option (google.api.http) = { - post: "/v1beta1/{parent=projects/*/databases/*/documents}:listCollectionIds" - body: "*" - additional_bindings { - post: "/v1beta1/{parent=projects/*/databases/*/documents/*/**}:listCollectionIds" - body: "*" - } - }; - option (google.api.method_signature) = "parent"; - } - - // Applies a batch of write operations. - // - // The BatchWrite method does not apply the write operations atomically - // and can apply them out of order. Method does not allow more than one write - // per document. Each write succeeds or fails independently. See the - // [BatchWriteResponse][google.firestore.v1beta1.BatchWriteResponse] for the success status of each write. - // - // If you require an atomically applied set of writes, use - // [Commit][google.firestore.v1beta1.Firestore.Commit] instead. - rpc BatchWrite(BatchWriteRequest) returns (BatchWriteResponse) { - option (google.api.http) = { - post: "/v1beta1/{database=projects/*/databases/*}/documents:batchWrite" - body: "*" - }; - } - - // Creates a new document. - rpc CreateDocument(CreateDocumentRequest) returns (Document) { - option (google.api.http) = { - post: "/v1beta1/{parent=projects/*/databases/*/documents/**}/{collection_id}" - body: "document" - }; - } -} - -// The request for [Firestore.GetDocument][google.firestore.v1beta1.Firestore.GetDocument]. -message GetDocumentRequest { - // Required. The resource name of the Document to get. In the format: - // `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - string name = 1 [(google.api.field_behavior) = REQUIRED]; - - // The fields to return. If not set, returns all fields. - // - // If the document has a field that is not present in this mask, that field - // will not be returned in the response. - DocumentMask mask = 2; - - // The consistency mode for this transaction. - // If not set, defaults to strong consistency. - oneof consistency_selector { - // Reads the document in a transaction. - bytes transaction = 3; - - // Reads the version of the document at the given time. - // This may not be older than 270 seconds. - google.protobuf.Timestamp read_time = 5; - } -} - -// The request for [Firestore.ListDocuments][google.firestore.v1beta1.Firestore.ListDocuments]. -message ListDocumentsRequest { - // Required. The parent resource name. In the format: - // `projects/{project_id}/databases/{database_id}/documents` or - // `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - // For example: - // `projects/my-project/databases/my-database/documents` or - // `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom` - string parent = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The collection ID, relative to `parent`, to list. For example: `chatrooms` - // or `messages`. - string collection_id = 2 [(google.api.field_behavior) = REQUIRED]; - - // The maximum number of documents to return. - int32 page_size = 3; - - // The `next_page_token` value returned from a previous List request, if any. - string page_token = 4; - - // The order to sort results by. For example: `priority desc, name`. - string order_by = 6; - - // The fields to return. If not set, returns all fields. - // - // If a document has a field that is not present in this mask, that field - // will not be returned in the response. - DocumentMask mask = 7; - - // The consistency mode for this transaction. - // If not set, defaults to strong consistency. - oneof consistency_selector { - // Reads documents in a transaction. - bytes transaction = 8; - - // Reads documents as they were at the given time. - // This may not be older than 270 seconds. - google.protobuf.Timestamp read_time = 10; - } - - // If the list should show missing documents. A missing document is a - // document that does not exist but has sub-documents. These documents will - // be returned with a key but will not have fields, [Document.create_time][google.firestore.v1beta1.Document.create_time], - // or [Document.update_time][google.firestore.v1beta1.Document.update_time] set. - // - // Requests with `show_missing` may not specify `where` or - // `order_by`. - bool show_missing = 12; -} - -// The response for [Firestore.ListDocuments][google.firestore.v1beta1.Firestore.ListDocuments]. -message ListDocumentsResponse { - // The Documents found. - repeated Document documents = 1; - - // The next page token. - string next_page_token = 2; -} - -// The request for [Firestore.CreateDocument][google.firestore.v1beta1.Firestore.CreateDocument]. -message CreateDocumentRequest { - // Required. The parent resource. For example: - // `projects/{project_id}/databases/{database_id}/documents` or - // `projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}` - string parent = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The collection ID, relative to `parent`, to list. For example: `chatrooms`. - string collection_id = 2 [(google.api.field_behavior) = REQUIRED]; - - // The client-assigned document ID to use for this document. - // - // Optional. If not specified, an ID will be assigned by the service. - string document_id = 3; - - // Required. The document to create. `name` must not be set. - Document document = 4 [(google.api.field_behavior) = REQUIRED]; - - // The fields to return. If not set, returns all fields. - // - // If the document has a field that is not present in this mask, that field - // will not be returned in the response. - DocumentMask mask = 5; -} - -// The request for [Firestore.UpdateDocument][google.firestore.v1beta1.Firestore.UpdateDocument]. -message UpdateDocumentRequest { - // Required. The updated document. - // Creates the document if it does not already exist. - Document document = 1 [(google.api.field_behavior) = REQUIRED]; - - // The fields to update. - // None of the field paths in the mask may contain a reserved name. - // - // If the document exists on the server and has fields not referenced in the - // mask, they are left unchanged. - // Fields referenced in the mask, but not present in the input document, are - // deleted from the document on the server. - DocumentMask update_mask = 2; - - // The fields to return. If not set, returns all fields. - // - // If the document has a field that is not present in this mask, that field - // will not be returned in the response. - DocumentMask mask = 3; - - // An optional precondition on the document. - // The request will fail if this is set and not met by the target document. - Precondition current_document = 4; -} - -// The request for [Firestore.DeleteDocument][google.firestore.v1beta1.Firestore.DeleteDocument]. -message DeleteDocumentRequest { - // Required. The resource name of the Document to delete. In the format: - // `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - string name = 1 [(google.api.field_behavior) = REQUIRED]; - - // An optional precondition on the document. - // The request will fail if this is set and not met by the target document. - Precondition current_document = 2; -} - -// The request for [Firestore.BatchGetDocuments][google.firestore.v1beta1.Firestore.BatchGetDocuments]. -message BatchGetDocumentsRequest { - // Required. The database name. In the format: - // `projects/{project_id}/databases/{database_id}`. - string database = 1 [(google.api.field_behavior) = REQUIRED]; - - // The names of the documents to retrieve. In the format: - // `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - // The request will fail if any of the document is not a child resource of the - // given `database`. Duplicate names will be elided. - repeated string documents = 2; - - // The fields to return. If not set, returns all fields. - // - // If a document has a field that is not present in this mask, that field will - // not be returned in the response. - DocumentMask mask = 3; - - // The consistency mode for this transaction. - // If not set, defaults to strong consistency. - oneof consistency_selector { - // Reads documents in a transaction. - bytes transaction = 4; - - // Starts a new transaction and reads the documents. - // Defaults to a read-only transaction. - // The new transaction ID will be returned as the first response in the - // stream. - TransactionOptions new_transaction = 5; - - // Reads documents as they were at the given time. - // This may not be older than 270 seconds. - google.protobuf.Timestamp read_time = 7; - } -} - -// The streamed response for [Firestore.BatchGetDocuments][google.firestore.v1beta1.Firestore.BatchGetDocuments]. -message BatchGetDocumentsResponse { - // A single result. - // This can be empty if the server is just returning a transaction. - oneof result { - // A document that was requested. - Document found = 1; - - // A document name that was requested but does not exist. In the format: - // `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - string missing = 2; - } - - // The transaction that was started as part of this request. - // Will only be set in the first response, and only if - // [BatchGetDocumentsRequest.new_transaction][google.firestore.v1beta1.BatchGetDocumentsRequest.new_transaction] was set in the request. - bytes transaction = 3; - - // The time at which the document was read. - // This may be monotically increasing, in this case the previous documents in - // the result stream are guaranteed not to have changed between their - // read_time and this one. - google.protobuf.Timestamp read_time = 4; -} - -// The request for [Firestore.BeginTransaction][google.firestore.v1beta1.Firestore.BeginTransaction]. -message BeginTransactionRequest { - // Required. The database name. In the format: - // `projects/{project_id}/databases/{database_id}`. - string database = 1 [(google.api.field_behavior) = REQUIRED]; - - // The options for the transaction. - // Defaults to a read-write transaction. - TransactionOptions options = 2; -} - -// The response for [Firestore.BeginTransaction][google.firestore.v1beta1.Firestore.BeginTransaction]. -message BeginTransactionResponse { - // The transaction that was started. - bytes transaction = 1; -} - -// The request for [Firestore.Commit][google.firestore.v1beta1.Firestore.Commit]. -message CommitRequest { - // Required. The database name. In the format: - // `projects/{project_id}/databases/{database_id}`. - string database = 1 [(google.api.field_behavior) = REQUIRED]; - - // The writes to apply. - // - // Always executed atomically and in order. - repeated Write writes = 2; - - // If set, applies all writes in this transaction, and commits it. - bytes transaction = 3; -} - -// The response for [Firestore.Commit][google.firestore.v1beta1.Firestore.Commit]. -message CommitResponse { - // The result of applying the writes. - // - // This i-th write result corresponds to the i-th write in the - // request. - repeated WriteResult write_results = 1; - - // The time at which the commit occurred. Any read with an equal or greater - // `read_time` is guaranteed to see the effects of the commit. - google.protobuf.Timestamp commit_time = 2; -} - -// The request for [Firestore.Rollback][google.firestore.v1beta1.Firestore.Rollback]. -message RollbackRequest { - // Required. The database name. In the format: - // `projects/{project_id}/databases/{database_id}`. - string database = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The transaction to roll back. - bytes transaction = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// The request for [Firestore.RunQuery][google.firestore.v1beta1.Firestore.RunQuery]. -message RunQueryRequest { - // Required. The parent resource name. In the format: - // `projects/{project_id}/databases/{database_id}/documents` or - // `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - // For example: - // `projects/my-project/databases/my-database/documents` or - // `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom` - string parent = 1 [(google.api.field_behavior) = REQUIRED]; - - // The query to run. - oneof query_type { - // A structured query. - StructuredQuery structured_query = 2; - } - - // The consistency mode for this transaction. - // If not set, defaults to strong consistency. - oneof consistency_selector { - // Reads documents in a transaction. - bytes transaction = 5; - - // Starts a new transaction and reads the documents. - // Defaults to a read-only transaction. - // The new transaction ID will be returned as the first response in the - // stream. - TransactionOptions new_transaction = 6; - - // Reads documents as they were at the given time. - // This may not be older than 270 seconds. - google.protobuf.Timestamp read_time = 7; - } -} - -// The response for [Firestore.RunQuery][google.firestore.v1beta1.Firestore.RunQuery]. -message RunQueryResponse { - // The transaction that was started as part of this request. - // Can only be set in the first response, and only if - // [RunQueryRequest.new_transaction][google.firestore.v1beta1.RunQueryRequest.new_transaction] was set in the request. - // If set, no other fields will be set in this response. - bytes transaction = 2; - - // A query result. - // Not set when reporting partial progress. - Document document = 1; - - // The time at which the document was read. This may be monotonically - // increasing; in this case, the previous documents in the result stream are - // guaranteed not to have changed between their `read_time` and this one. - // - // If the query returns no results, a response with `read_time` and no - // `document` will be sent, and this represents the time at which the query - // was run. - google.protobuf.Timestamp read_time = 3; - - // The number of results that have been skipped due to an offset between - // the last response and the current response. - int32 skipped_results = 4; -} - -// The request for [Firestore.PartitionQuery][google.firestore.v1beta1.Firestore.PartitionQuery]. -message PartitionQueryRequest { - // Required. The parent resource name. In the format: - // `projects/{project_id}/databases/{database_id}/documents`. - // Document resource names are not supported; only database resource names - // can be specified. - string parent = 1 [(google.api.field_behavior) = REQUIRED]; - - // The query to partition. - oneof query_type { - // A structured query. - // Query must specify collection with all descendants and be ordered by name - // ascending. Other filters, order bys, limits, offsets, and start/end - // cursors are not supported. - StructuredQuery structured_query = 2; - } - - // The desired maximum number of partition points. - // The partitions may be returned across multiple pages of results. - // The number must be positive. The actual number of partitions - // returned may be fewer. - // - // For example, this may be set to one fewer than the number of parallel - // queries to be run, or in running a data pipeline job, one fewer than the - // number of workers or compute instances available. - int64 partition_count = 3; - - // The `next_page_token` value returned from a previous call to - // PartitionQuery that may be used to get an additional set of results. - // There are no ordering guarantees between sets of results. Thus, using - // multiple sets of results will require merging the different result sets. - // - // For example, two subsequent calls using a page_token may return: - // - // * cursor B, cursor M, cursor Q - // * cursor A, cursor U, cursor W - // - // To obtain a complete result set ordered with respect to the results of the - // query supplied to PartitionQuery, the results sets should be merged: - // cursor A, cursor B, cursor M, cursor Q, cursor U, cursor W - string page_token = 4; - - // The maximum number of partitions to return in this call, subject to - // `partition_count`. - // - // For example, if `partition_count` = 10 and `page_size` = 8, the first call - // to PartitionQuery will return up to 8 partitions and a `next_page_token` - // if more results exist. A second call to PartitionQuery will return up to - // 2 partitions, to complete the total of 10 specified in `partition_count`. - int32 page_size = 5; -} - -// The response for [Firestore.PartitionQuery][google.firestore.v1beta1.Firestore.PartitionQuery]. -message PartitionQueryResponse { - // Partition results. - // Each partition is a split point that can be used by RunQuery as a starting - // or end point for the query results. The RunQuery requests must be made with - // the same query supplied to this PartitionQuery request. The partition - // cursors will be ordered according to same ordering as the results of the - // query supplied to PartitionQuery. - // - // For example, if a PartitionQuery request returns partition cursors A and B, - // running the following three queries will return the entire result set of - // the original query: - // - // * query, end_at A - // * query, start_at A, end_at B - // * query, start_at B - // - // An empty result may indicate that the query has too few results to be - // partitioned. - repeated Cursor partitions = 1; - - // A page token that may be used to request an additional set of results, up - // to the number specified by `partition_count` in the PartitionQuery request. - // If blank, there are no more results. - string next_page_token = 2; -} - -// The request for [Firestore.Write][google.firestore.v1beta1.Firestore.Write]. -// -// The first request creates a stream, or resumes an existing one from a token. -// -// When creating a new stream, the server replies with a response containing -// only an ID and a token, to use in the next request. -// -// When resuming a stream, the server first streams any responses later than the -// given token, then a response containing only an up-to-date token, to use in -// the next request. -message WriteRequest { - // Required. The database name. In the format: - // `projects/{project_id}/databases/{database_id}`. - // This is only required in the first message. - string database = 1 [(google.api.field_behavior) = REQUIRED]; - - // The ID of the write stream to resume. - // This may only be set in the first message. When left empty, a new write - // stream will be created. - string stream_id = 2; - - // The writes to apply. - // - // Always executed atomically and in order. - // This must be empty on the first request. - // This may be empty on the last request. - // This must not be empty on all other requests. - repeated Write writes = 3; - - // A stream token that was previously sent by the server. - // - // The client should set this field to the token from the most recent - // [WriteResponse][google.firestore.v1beta1.WriteResponse] it has received. This acknowledges that the client has - // received responses up to this token. After sending this token, earlier - // tokens may not be used anymore. - // - // The server may close the stream if there are too many unacknowledged - // responses. - // - // Leave this field unset when creating a new stream. To resume a stream at - // a specific point, set this field and the `stream_id` field. - // - // Leave this field unset when creating a new stream. - bytes stream_token = 4; - - // Labels associated with this write request. - map labels = 5; -} - -// The response for [Firestore.Write][google.firestore.v1beta1.Firestore.Write]. -message WriteResponse { - // The ID of the stream. - // Only set on the first message, when a new stream was created. - string stream_id = 1; - - // A token that represents the position of this response in the stream. - // This can be used by a client to resume the stream at this point. - // - // This field is always set. - bytes stream_token = 2; - - // The result of applying the writes. - // - // This i-th write result corresponds to the i-th write in the - // request. - repeated WriteResult write_results = 3; - - // The time at which the commit occurred. Any read with an equal or greater - // `read_time` is guaranteed to see the effects of the write. - google.protobuf.Timestamp commit_time = 4; -} - -// A request for [Firestore.Listen][google.firestore.v1beta1.Firestore.Listen] -message ListenRequest { - // Required. The database name. In the format: - // `projects/{project_id}/databases/{database_id}`. - string database = 1 [(google.api.field_behavior) = REQUIRED]; - - // The supported target changes. - oneof target_change { - // A target to add to this stream. - Target add_target = 2; - - // The ID of a target to remove from this stream. - int32 remove_target = 3; - } - - // Labels associated with this target change. - map labels = 4; -} - -// The response for [Firestore.Listen][google.firestore.v1beta1.Firestore.Listen]. -message ListenResponse { - // The supported responses. - oneof response_type { - // Targets have changed. - TargetChange target_change = 2; - - // A [Document][google.firestore.v1beta1.Document] has changed. - DocumentChange document_change = 3; - - // A [Document][google.firestore.v1beta1.Document] has been deleted. - DocumentDelete document_delete = 4; - - // A [Document][google.firestore.v1beta1.Document] has been removed from a target (because it is no longer - // relevant to that target). - DocumentRemove document_remove = 6; - - // A filter to apply to the set of documents previously returned for the - // given target. - // - // Returned when documents may have been removed from the given target, but - // the exact documents are unknown. - ExistenceFilter filter = 5; - } -} - -// A specification of a set of documents to listen to. -message Target { - // A target specified by a set of documents names. - message DocumentsTarget { - // The names of the documents to retrieve. In the format: - // `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - // The request will fail if any of the document is not a child resource of - // the given `database`. Duplicate names will be elided. - repeated string documents = 2; - } - - // A target specified by a query. - message QueryTarget { - // The parent resource name. In the format: - // `projects/{project_id}/databases/{database_id}/documents` or - // `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - // For example: - // `projects/my-project/databases/my-database/documents` or - // `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom` - string parent = 1; - - // The query to run. - oneof query_type { - // A structured query. - StructuredQuery structured_query = 2; - } - } - - // The type of target to listen to. - oneof target_type { - // A target specified by a query. - QueryTarget query = 2; - - // A target specified by a set of document names. - DocumentsTarget documents = 3; - } - - // When to start listening. - // - // If not specified, all matching Documents are returned before any - // subsequent changes. - oneof resume_type { - // A resume token from a prior [TargetChange][google.firestore.v1beta1.TargetChange] for an identical target. - // - // Using a resume token with a different target is unsupported and may fail. - bytes resume_token = 4; - - // Start listening after a specific `read_time`. - // - // The client must know the state of matching documents at this time. - google.protobuf.Timestamp read_time = 11; - } - - // The target ID that identifies the target on the stream. Must be a positive - // number and non-zero. - int32 target_id = 5; - - // If the target should be removed once it is current and consistent. - bool once = 6; -} - -// Targets being watched have changed. -message TargetChange { - // The type of change. - enum TargetChangeType { - // No change has occurred. Used only to send an updated `resume_token`. - NO_CHANGE = 0; - - // The targets have been added. - ADD = 1; - - // The targets have been removed. - REMOVE = 2; - - // The targets reflect all changes committed before the targets were added - // to the stream. - // - // This will be sent after or with a `read_time` that is greater than or - // equal to the time at which the targets were added. - // - // Listeners can wait for this change if read-after-write semantics - // are desired. - CURRENT = 3; - - // The targets have been reset, and a new initial state for the targets - // will be returned in subsequent changes. - // - // After the initial state is complete, `CURRENT` will be returned even - // if the target was previously indicated to be `CURRENT`. - RESET = 4; - } - - // The type of change that occurred. - TargetChangeType target_change_type = 1; - - // The target IDs of targets that have changed. - // - // If empty, the change applies to all targets. - // - // The order of the target IDs is not defined. - repeated int32 target_ids = 2; - - // The error that resulted in this change, if applicable. - google.rpc.Status cause = 3; - - // A token that can be used to resume the stream for the given `target_ids`, - // or all targets if `target_ids` is empty. - // - // Not set on every target change. - bytes resume_token = 4; - - // The consistent `read_time` for the given `target_ids` (omitted when the - // target_ids are not at a consistent snapshot). - // - // The stream is guaranteed to send a `read_time` with `target_ids` empty - // whenever the entire stream reaches a new consistent snapshot. ADD, - // CURRENT, and RESET messages are guaranteed to (eventually) result in a - // new consistent snapshot (while NO_CHANGE and REMOVE messages are not). - // - // For a given stream, `read_time` is guaranteed to be monotonically - // increasing. - google.protobuf.Timestamp read_time = 6; -} - -// The request for [Firestore.ListCollectionIds][google.firestore.v1beta1.Firestore.ListCollectionIds]. -message ListCollectionIdsRequest { - // Required. The parent document. In the format: - // `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - // For example: - // `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom` - string parent = 1 [(google.api.field_behavior) = REQUIRED]; - - // The maximum number of results to return. - int32 page_size = 2; - - // A page token. Must be a value from - // [ListCollectionIdsResponse][google.firestore.v1beta1.ListCollectionIdsResponse]. - string page_token = 3; -} - -// The response from [Firestore.ListCollectionIds][google.firestore.v1beta1.Firestore.ListCollectionIds]. -message ListCollectionIdsResponse { - // The collection ids. - repeated string collection_ids = 1; - - // A page token that may be used to continue the list. - string next_page_token = 2; -} - -// The request for [Firestore.BatchWrite][google.firestore.v1beta1.Firestore.BatchWrite]. -message BatchWriteRequest { - // Required. The database name. In the format: - // `projects/{project_id}/databases/{database_id}`. - string database = 1 [(google.api.field_behavior) = REQUIRED]; - - // The writes to apply. - // - // Method does not apply writes atomically and does not guarantee ordering. - // Each write succeeds or fails independently. You cannot write to the same - // document more than once per request. - repeated Write writes = 2; - - // Labels associated with this batch write. - map labels = 3; -} - -// The response from [Firestore.BatchWrite][google.firestore.v1beta1.Firestore.BatchWrite]. -message BatchWriteResponse { - // The result of applying the writes. - // - // This i-th write result corresponds to the i-th write in the - // request. - repeated WriteResult write_results = 1; - - // The status of applying the writes. - // - // This i-th write status corresponds to the i-th write in the - // request. - repeated google.rpc.Status status = 2; -} diff --git a/packages/google-cloud-firestore-api/protos/google/firestore/v1beta1/query.proto b/packages/google-cloud-firestore-api/protos/google/firestore/v1beta1/query.proto deleted file mode 100644 index f107ab72177a..000000000000 --- a/packages/google-cloud-firestore-api/protos/google/firestore/v1beta1/query.proto +++ /dev/null @@ -1,300 +0,0 @@ -// Copyright 2025 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.firestore.v1beta1; - -import "google/firestore/v1beta1/document.proto"; -import "google/protobuf/wrappers.proto"; - -option csharp_namespace = "Google.Cloud.Firestore.V1Beta1"; -option go_package = "cloud.google.com/go/firestore/apiv1beta1/firestorepb;firestorepb"; -option java_multiple_files = true; -option java_outer_classname = "QueryProto"; -option java_package = "com.google.firestore.v1beta1"; -option objc_class_prefix = "GCFS"; -option php_namespace = "Google\\Cloud\\Firestore\\V1beta1"; -option ruby_package = "Google::Cloud::Firestore::V1beta1"; - -// A Firestore query. -message StructuredQuery { - // A selection of a collection, such as `messages as m1`. - message CollectionSelector { - // The collection ID. - // When set, selects only collections with this ID. - string collection_id = 2; - - // When false, selects only collections that are immediate children of - // the `parent` specified in the containing `RunQueryRequest`. - // When true, selects all descendant collections. - bool all_descendants = 3; - } - - // A filter. - message Filter { - // The type of filter. - oneof filter_type { - // A composite filter. - CompositeFilter composite_filter = 1; - - // A filter on a document field. - FieldFilter field_filter = 2; - - // A filter that takes exactly one argument. - UnaryFilter unary_filter = 3; - } - } - - // A filter that merges multiple other filters using the given operator. - message CompositeFilter { - // A composite filter operator. - enum Operator { - // Unspecified. This value must not be used. - OPERATOR_UNSPECIFIED = 0; - - // The results are required to satisfy each of the combined filters. - AND = 1; - } - - // The operator for combining multiple filters. - Operator op = 1; - - // The list of filters to combine. - // Must contain at least one filter. - repeated Filter filters = 2; - } - - // A filter on a specific field. - message FieldFilter { - // A field filter operator. - enum Operator { - // Unspecified. This value must not be used. - OPERATOR_UNSPECIFIED = 0; - - // The given `field` is less than the given `value`. - // - // Requires: - // - // * That `field` come first in `order_by`. - LESS_THAN = 1; - - // The given `field` is less than or equal to the given `value`. - // - // Requires: - // - // * That `field` come first in `order_by`. - LESS_THAN_OR_EQUAL = 2; - - // The given `field` is greater than the given `value`. - // - // Requires: - // - // * That `field` come first in `order_by`. - GREATER_THAN = 3; - - // The given `field` is greater than or equal to the given `value`. - // - // Requires: - // - // * That `field` come first in `order_by`. - GREATER_THAN_OR_EQUAL = 4; - - // The given `field` is equal to the given `value`. - EQUAL = 5; - - // The given `field` is not equal to the given `value`. - // - // Requires: - // - // * No other `NOT_EQUAL`, `NOT_IN`, `IS_NOT_NULL`, or `IS_NOT_NAN`. - // * That `field` comes first in the `order_by`. - NOT_EQUAL = 6; - - // The given `field` is an array that contains the given `value`. - ARRAY_CONTAINS = 7; - - // The given `field` is equal to at least one value in the given array. - // - // Requires: - // - // * That `value` is a non-empty `ArrayValue` with at most 10 values. - // * No other `IN` or `ARRAY_CONTAINS_ANY` or `NOT_IN`. - IN = 8; - - // The given `field` is an array that contains any of the values in the - // given array. - // - // Requires: - // - // * That `value` is a non-empty `ArrayValue` with at most 10 values. - // * No other `IN` or `ARRAY_CONTAINS_ANY` or `NOT_IN`. - ARRAY_CONTAINS_ANY = 9; - - // The value of the `field` is not in the given array. - // - // Requires: - // - // * That `value` is a non-empty `ArrayValue` with at most 10 values. - // * No other `IN`, `ARRAY_CONTAINS_ANY`, `NOT_IN`, `NOT_EQUAL`, - // `IS_NOT_NULL`, or `IS_NOT_NAN`. - // * That `field` comes first in the `order_by`. - NOT_IN = 10; - } - - // The field to filter by. - FieldReference field = 1; - - // The operator to filter by. - Operator op = 2; - - // The value to compare to. - Value value = 3; - } - - // A filter with a single operand. - message UnaryFilter { - // A unary operator. - enum Operator { - // Unspecified. This value must not be used. - OPERATOR_UNSPECIFIED = 0; - - // The given `field` is equal to `NaN`. - IS_NAN = 2; - - // The given `field` is equal to `NULL`. - IS_NULL = 3; - - // The given `field` is not equal to `NaN`. - // - // Requires: - // - // * No other `NOT_EQUAL`, `NOT_IN`, `IS_NOT_NULL`, or `IS_NOT_NAN`. - // * That `field` comes first in the `order_by`. - IS_NOT_NAN = 4; - - // The given `field` is not equal to `NULL`. - // - // Requires: - // - // * A single `NOT_EQUAL`, `NOT_IN`, `IS_NOT_NULL`, or `IS_NOT_NAN`. - // * That `field` comes first in the `order_by`. - IS_NOT_NULL = 5; - } - - // The unary operator to apply. - Operator op = 1; - - // The argument to the filter. - oneof operand_type { - // The field to which to apply the operator. - FieldReference field = 2; - } - } - - // A reference to a field, such as `max(messages.time) as max_time`. - message FieldReference { - string field_path = 2; - } - - // An order on a field. - message Order { - // The field to order by. - FieldReference field = 1; - - // The direction to order by. Defaults to `ASCENDING`. - Direction direction = 2; - } - - // The projection of document's fields to return. - message Projection { - // The fields to return. - // - // If empty, all fields are returned. To only return the name - // of the document, use `['__name__']`. - repeated FieldReference fields = 2; - } - - // A sort direction. - enum Direction { - // Unspecified. - DIRECTION_UNSPECIFIED = 0; - - // Ascending. - ASCENDING = 1; - - // Descending. - DESCENDING = 2; - } - - // The projection to return. - Projection select = 1; - - // The collections to query. - repeated CollectionSelector from = 2; - - // The filter to apply. - Filter where = 3; - - // The order to apply to the query results. - // - // Firestore guarantees a stable ordering through the following rules: - // - // * Any field required to appear in `order_by`, that is not already - // specified in `order_by`, is appended to the order in field name order - // by default. - // * If an order on `__name__` is not specified, it is appended by default. - // - // Fields are appended with the same sort direction as the last order - // specified, or 'ASCENDING' if no order was specified. For example: - // - // * `SELECT * FROM Foo ORDER BY A` becomes - // `SELECT * FROM Foo ORDER BY A, __name__` - // * `SELECT * FROM Foo ORDER BY A DESC` becomes - // `SELECT * FROM Foo ORDER BY A DESC, __name__ DESC` - // * `SELECT * FROM Foo WHERE A > 1` becomes - // `SELECT * FROM Foo WHERE A > 1 ORDER BY A, __name__` - repeated Order order_by = 4; - - // A starting point for the query results. - Cursor start_at = 7; - - // A end point for the query results. - Cursor end_at = 8; - - // The number of results to skip. - // - // Applies before limit, but after all other constraints. Must be >= 0 if - // specified. - int32 offset = 6; - - // The maximum number of results to return. - // - // Applies after all other constraints. - // Must be >= 0 if specified. - google.protobuf.Int32Value limit = 5; -} - -// A position in a query result set. -message Cursor { - // The values that represent a position, in the order they appear in - // the order by clause of a query. - // - // Can contain fewer values than specified in the order by clause. - repeated Value values = 1; - - // If the position is just before or just after the given values, relative - // to the sort order defined by the query. - bool before = 2; -} diff --git a/packages/google-cloud-firestore-api/protos/google/firestore/v1beta1/undeliverable_first_gen_event.proto b/packages/google-cloud-firestore-api/protos/google/firestore/v1beta1/undeliverable_first_gen_event.proto deleted file mode 100644 index 0f7841eb9d64..000000000000 --- a/packages/google-cloud-firestore-api/protos/google/firestore/v1beta1/undeliverable_first_gen_event.proto +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2025 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.firestore.v1beta1; - -import "google/protobuf/timestamp.proto"; - -option csharp_namespace = "Google.Cloud.Firestore.V1Beta1"; -option go_package = "cloud.google.com/go/firestore/apiv1beta1/firestorepb;firestorepb"; -option java_multiple_files = true; -option java_outer_classname = "UndeliverableFirstGenEventProto"; -option java_package = "com.google.firestore.v1beta1"; -option php_namespace = "Google\\Cloud\\Firestore\\V1beta1"; -option ruby_package = "Google::Cloud::Firestore::V1beta1"; - -// A message signifying an event that cannot be delivered to Cloud Functions -// from Firestore using [Cloud Firestore triggers 1st -// gen](https://cloud.google.com/functions/docs/calling/cloud-firestore) -message UndeliverableFirstGenEvent { - // Reason for events being undeliverable. - enum Reason { - // Unspecified. - REASON_UNSPECIFIED = 0; - - // Exceeding maximum event size limit - EXCEEDING_SIZE_LIMIT = 1; - } - - // Document change type. - enum DocumentChangeType { - // Unspecified. - DOCUMENT_CHANGE_TYPE_UNSPECIFIED = 0; - - // Represent creation operation. - CREATE = 1; - - // Represent delete operation. - DELETE = 2; - - // Represent update operation. - UPDATE = 3; - } - - // Error message for events being undeliverable. - string message = 1; - - // Reason for events being undeliverable. - Reason reason = 2; - - // The resource name of the changed document, in the format of - // `projects/{projectId}/databases/{databaseId}/documents/{document_path}`. - string document_name = 3; - - // The type of the document change. - DocumentChangeType document_change_type = 4; - - // The names of the functions that were supposed to be triggered. - repeated string function_name = 5; - - // The commit time of triggered write operation. - google.protobuf.Timestamp triggered_time = 6; -} diff --git a/packages/google-cloud-firestore-api/protos/google/firestore/v1beta1/write.proto b/packages/google-cloud-firestore-api/protos/google/firestore/v1beta1/write.proto deleted file mode 100644 index 2fbe127ebe89..000000000000 --- a/packages/google-cloud-firestore-api/protos/google/firestore/v1beta1/write.proto +++ /dev/null @@ -1,258 +0,0 @@ -// Copyright 2025 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.firestore.v1beta1; - -import "google/firestore/v1beta1/common.proto"; -import "google/firestore/v1beta1/document.proto"; -import "google/protobuf/timestamp.proto"; - -option csharp_namespace = "Google.Cloud.Firestore.V1Beta1"; -option go_package = "cloud.google.com/go/firestore/apiv1beta1/firestorepb;firestorepb"; -option java_multiple_files = true; -option java_outer_classname = "WriteProto"; -option java_package = "com.google.firestore.v1beta1"; -option objc_class_prefix = "GCFS"; -option php_namespace = "Google\\Cloud\\Firestore\\V1beta1"; -option ruby_package = "Google::Cloud::Firestore::V1beta1"; - -// A write on a document. -message Write { - // The operation to execute. - oneof operation { - // A document to write. - Document update = 1; - - // A document name to delete. In the format: - // `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - string delete = 2; - - // Applies a transformation to a document. - DocumentTransform transform = 6; - } - - // The fields to update in this write. - // - // This field can be set only when the operation is `update`. - // If the mask is not set for an `update` and the document exists, any - // existing data will be overwritten. - // If the mask is set and the document on the server has fields not covered by - // the mask, they are left unchanged. - // Fields referenced in the mask, but not present in the input document, are - // deleted from the document on the server. - // The field paths in this mask must not contain a reserved field name. - DocumentMask update_mask = 3; - - // The transforms to perform after update. - // - // This field can be set only when the operation is `update`. If present, this - // write is equivalent to performing `update` and `transform` to the same - // document atomically and in order. - repeated DocumentTransform.FieldTransform update_transforms = 7; - - // An optional precondition on the document. - // - // The write will fail if this is set and not met by the target document. - Precondition current_document = 4; -} - -// A transformation of a document. -message DocumentTransform { - // A transformation of a field of the document. - message FieldTransform { - // A value that is calculated by the server. - enum ServerValue { - // Unspecified. This value must not be used. - SERVER_VALUE_UNSPECIFIED = 0; - - // The time at which the server processed the request, with millisecond - // precision. If used on multiple fields (same or different documents) in - // a transaction, all the fields will get the same server timestamp. - REQUEST_TIME = 1; - } - - // The path of the field. See [Document.fields][google.firestore.v1beta1.Document.fields] for the field path syntax - // reference. - string field_path = 1; - - // The transformation to apply on the field. - oneof transform_type { - // Sets the field to the given server value. - ServerValue set_to_server_value = 2; - - // Adds the given value to the field's current value. - // - // This must be an integer or a double value. - // If the field is not an integer or double, or if the field does not yet - // exist, the transformation will set the field to the given value. - // If either of the given value or the current field value are doubles, - // both values will be interpreted as doubles. Double arithmetic and - // representation of double values follow IEEE 754 semantics. - // If there is positive/negative integer overflow, the field is resolved - // to the largest magnitude positive/negative integer. - Value increment = 3; - - // Sets the field to the maximum of its current value and the given value. - // - // This must be an integer or a double value. - // If the field is not an integer or double, or if the field does not yet - // exist, the transformation will set the field to the given value. - // If a maximum operation is applied where the field and the input value - // are of mixed types (that is - one is an integer and one is a double) - // the field takes on the type of the larger operand. If the operands are - // equivalent (e.g. 3 and 3.0), the field does not change. - // 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and - // zero input value is always the stored value. - // The maximum of any numeric value x and NaN is NaN. - Value maximum = 4; - - // Sets the field to the minimum of its current value and the given value. - // - // This must be an integer or a double value. - // If the field is not an integer or double, or if the field does not yet - // exist, the transformation will set the field to the input value. - // If a minimum operation is applied where the field and the input value - // are of mixed types (that is - one is an integer and one is a double) - // the field takes on the type of the smaller operand. If the operands are - // equivalent (e.g. 3 and 3.0), the field does not change. - // 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and - // zero input value is always the stored value. - // The minimum of any numeric value x and NaN is NaN. - Value minimum = 5; - - // Append the given elements in order if they are not already present in - // the current field value. - // If the field is not an array, or if the field does not yet exist, it is - // first set to the empty array. - // - // Equivalent numbers of different types (e.g. 3L and 3.0) are - // considered equal when checking if a value is missing. - // NaN is equal to NaN, and Null is equal to Null. - // If the input contains multiple equivalent values, only the first will - // be considered. - // - // The corresponding transform_result will be the null value. - ArrayValue append_missing_elements = 6; - - // Remove all of the given elements from the array in the field. - // If the field is not an array, or if the field does not yet exist, it is - // set to the empty array. - // - // Equivalent numbers of the different types (e.g. 3L and 3.0) are - // considered equal when deciding whether an element should be removed. - // NaN is equal to NaN, and Null is equal to Null. - // This will remove all equivalent values if there are duplicates. - // - // The corresponding transform_result will be the null value. - ArrayValue remove_all_from_array = 7; - } - } - - // The name of the document to transform. - string document = 1; - - // The list of transformations to apply to the fields of the document, in - // order. - // This must not be empty. - repeated FieldTransform field_transforms = 2; -} - -// The result of applying a write. -message WriteResult { - // The last update time of the document after applying the write. Not set - // after a `delete`. - // - // If the write did not actually change the document, this will be the - // previous update_time. - google.protobuf.Timestamp update_time = 1; - - // The results of applying each [DocumentTransform.FieldTransform][google.firestore.v1beta1.DocumentTransform.FieldTransform], in the - // same order. - repeated Value transform_results = 2; -} - -// A [Document][google.firestore.v1beta1.Document] has changed. -// -// May be the result of multiple [writes][google.firestore.v1beta1.Write], including deletes, that -// ultimately resulted in a new value for the [Document][google.firestore.v1beta1.Document]. -// -// Multiple [DocumentChange][google.firestore.v1beta1.DocumentChange] messages may be returned for the same logical -// change, if multiple targets are affected. -message DocumentChange { - // The new state of the [Document][google.firestore.v1beta1.Document]. - // - // If `mask` is set, contains only fields that were updated or added. - Document document = 1; - - // A set of target IDs of targets that match this document. - repeated int32 target_ids = 5; - - // A set of target IDs for targets that no longer match this document. - repeated int32 removed_target_ids = 6; -} - -// A [Document][google.firestore.v1beta1.Document] has been deleted. -// -// May be the result of multiple [writes][google.firestore.v1beta1.Write], including updates, the -// last of which deleted the [Document][google.firestore.v1beta1.Document]. -// -// Multiple [DocumentDelete][google.firestore.v1beta1.DocumentDelete] messages may be returned for the same logical -// delete, if multiple targets are affected. -message DocumentDelete { - // The resource name of the [Document][google.firestore.v1beta1.Document] that was deleted. - string document = 1; - - // A set of target IDs for targets that previously matched this entity. - repeated int32 removed_target_ids = 6; - - // The read timestamp at which the delete was observed. - // - // Greater or equal to the `commit_time` of the delete. - google.protobuf.Timestamp read_time = 4; -} - -// A [Document][google.firestore.v1beta1.Document] has been removed from the view of the targets. -// -// Sent if the document is no longer relevant to a target and is out of view. -// Can be sent instead of a DocumentDelete or a DocumentChange if the server -// can not send the new value of the document. -// -// Multiple [DocumentRemove][google.firestore.v1beta1.DocumentRemove] messages may be returned for the same logical -// write or delete, if multiple targets are affected. -message DocumentRemove { - // The resource name of the [Document][google.firestore.v1beta1.Document] that has gone out of view. - string document = 1; - - // A set of target IDs for targets that previously matched this document. - repeated int32 removed_target_ids = 2; - - // The read timestamp at which the remove was observed. - // - // Greater or equal to the `commit_time` of the change/delete/remove. - google.protobuf.Timestamp read_time = 4; -} - -// A digest of all the documents that match a given target. -message ExistenceFilter { - // The target ID to which this filter applies. - int32 target_id = 1; - - // The total count of documents that match [target_id][google.firestore.v1beta1.ExistenceFilter.target_id]. - // - // If different from the count of documents in the client that match, the - // client must manually determine which documents no longer match the target. - int32 count = 2; -} diff --git a/packages/google-cloud-firestore-api/protos/protos.d.ts b/packages/google-cloud-firestore-api/protos/protos.d.ts index 794aabf24f73..2f1be8211755 100644 --- a/packages/google-cloud-firestore-api/protos/protos.d.ts +++ b/packages/google-cloud-firestore-api/protos/protos.d.ts @@ -18976,9158 +18976,2715 @@ export namespace google { public static getTypeUrl(typeUrlPrefix?: string): string; } } + } - /** Namespace v1beta1. */ - namespace v1beta1 { - - /** Properties of a DocumentMask. */ - interface IDocumentMask { - - /** DocumentMask fieldPaths */ - fieldPaths?: (string[]|null); - } - - /** Represents a DocumentMask. */ - class DocumentMask implements IDocumentMask { - - /** - * Constructs a new DocumentMask. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IDocumentMask); - - /** DocumentMask fieldPaths. */ - public fieldPaths: string[]; - - /** - * Creates a new DocumentMask instance using the specified properties. - * @param [properties] Properties to set - * @returns DocumentMask instance - */ - public static create(properties?: google.firestore.v1beta1.IDocumentMask): google.firestore.v1beta1.DocumentMask; - - /** - * Encodes the specified DocumentMask message. Does not implicitly {@link google.firestore.v1beta1.DocumentMask.verify|verify} messages. - * @param message DocumentMask message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IDocumentMask, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified DocumentMask message, length delimited. Does not implicitly {@link google.firestore.v1beta1.DocumentMask.verify|verify} messages. - * @param message DocumentMask message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IDocumentMask, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a DocumentMask message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns DocumentMask - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.DocumentMask; - - /** - * Decodes a DocumentMask message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns DocumentMask - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.DocumentMask; - - /** - * Verifies a DocumentMask message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a DocumentMask message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns DocumentMask - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.DocumentMask; - - /** - * Creates a plain object from a DocumentMask message. Also converts values to other types if specified. - * @param message DocumentMask - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.DocumentMask, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this DocumentMask to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for DocumentMask - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a Precondition. */ - interface IPrecondition { - - /** Precondition exists */ - exists?: (boolean|null); - - /** Precondition updateTime */ - updateTime?: (google.protobuf.ITimestamp|null); - } - - /** Represents a Precondition. */ - class Precondition implements IPrecondition { - - /** - * Constructs a new Precondition. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IPrecondition); - - /** Precondition exists. */ - public exists?: (boolean|null); - - /** Precondition updateTime. */ - public updateTime?: (google.protobuf.ITimestamp|null); - - /** Precondition conditionType. */ - public conditionType?: ("exists"|"updateTime"); - - /** - * Creates a new Precondition instance using the specified properties. - * @param [properties] Properties to set - * @returns Precondition instance - */ - public static create(properties?: google.firestore.v1beta1.IPrecondition): google.firestore.v1beta1.Precondition; - - /** - * Encodes the specified Precondition message. Does not implicitly {@link google.firestore.v1beta1.Precondition.verify|verify} messages. - * @param message Precondition message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IPrecondition, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified Precondition message, length delimited. Does not implicitly {@link google.firestore.v1beta1.Precondition.verify|verify} messages. - * @param message Precondition message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IPrecondition, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a Precondition message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns Precondition - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.Precondition; - - /** - * Decodes a Precondition message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns Precondition - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.Precondition; - - /** - * Verifies a Precondition message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a Precondition message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns Precondition - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.Precondition; - - /** - * Creates a plain object from a Precondition message. Also converts values to other types if specified. - * @param message Precondition - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.Precondition, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this Precondition to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for Precondition - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a TransactionOptions. */ - interface ITransactionOptions { - - /** TransactionOptions readOnly */ - readOnly?: (google.firestore.v1beta1.TransactionOptions.IReadOnly|null); - - /** TransactionOptions readWrite */ - readWrite?: (google.firestore.v1beta1.TransactionOptions.IReadWrite|null); - } - - /** Represents a TransactionOptions. */ - class TransactionOptions implements ITransactionOptions { - - /** - * Constructs a new TransactionOptions. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.ITransactionOptions); - - /** TransactionOptions readOnly. */ - public readOnly?: (google.firestore.v1beta1.TransactionOptions.IReadOnly|null); - - /** TransactionOptions readWrite. */ - public readWrite?: (google.firestore.v1beta1.TransactionOptions.IReadWrite|null); - - /** TransactionOptions mode. */ - public mode?: ("readOnly"|"readWrite"); - - /** - * Creates a new TransactionOptions instance using the specified properties. - * @param [properties] Properties to set - * @returns TransactionOptions instance - */ - public static create(properties?: google.firestore.v1beta1.ITransactionOptions): google.firestore.v1beta1.TransactionOptions; - - /** - * Encodes the specified TransactionOptions message. Does not implicitly {@link google.firestore.v1beta1.TransactionOptions.verify|verify} messages. - * @param message TransactionOptions message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.ITransactionOptions, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified TransactionOptions message, length delimited. Does not implicitly {@link google.firestore.v1beta1.TransactionOptions.verify|verify} messages. - * @param message TransactionOptions message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.ITransactionOptions, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a TransactionOptions message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns TransactionOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.TransactionOptions; - - /** - * Decodes a TransactionOptions message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns TransactionOptions - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.TransactionOptions; - - /** - * Verifies a TransactionOptions message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a TransactionOptions message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns TransactionOptions - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.TransactionOptions; - - /** - * Creates a plain object from a TransactionOptions message. Also converts values to other types if specified. - * @param message TransactionOptions - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.TransactionOptions, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this TransactionOptions to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for TransactionOptions - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - namespace TransactionOptions { - - /** Properties of a ReadWrite. */ - interface IReadWrite { - - /** ReadWrite retryTransaction */ - retryTransaction?: (Uint8Array|Buffer|string|null); - } - - /** Represents a ReadWrite. */ - class ReadWrite implements IReadWrite { - - /** - * Constructs a new ReadWrite. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.TransactionOptions.IReadWrite); - - /** ReadWrite retryTransaction. */ - public retryTransaction: (Uint8Array|Buffer|string); - - /** - * Creates a new ReadWrite instance using the specified properties. - * @param [properties] Properties to set - * @returns ReadWrite instance - */ - public static create(properties?: google.firestore.v1beta1.TransactionOptions.IReadWrite): google.firestore.v1beta1.TransactionOptions.ReadWrite; - - /** - * Encodes the specified ReadWrite message. Does not implicitly {@link google.firestore.v1beta1.TransactionOptions.ReadWrite.verify|verify} messages. - * @param message ReadWrite message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.TransactionOptions.IReadWrite, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified ReadWrite message, length delimited. Does not implicitly {@link google.firestore.v1beta1.TransactionOptions.ReadWrite.verify|verify} messages. - * @param message ReadWrite message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.TransactionOptions.IReadWrite, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a ReadWrite message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns ReadWrite - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.TransactionOptions.ReadWrite; - - /** - * Decodes a ReadWrite message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns ReadWrite - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.TransactionOptions.ReadWrite; - - /** - * Verifies a ReadWrite message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a ReadWrite message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns ReadWrite - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.TransactionOptions.ReadWrite; - - /** - * Creates a plain object from a ReadWrite message. Also converts values to other types if specified. - * @param message ReadWrite - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.TransactionOptions.ReadWrite, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this ReadWrite to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for ReadWrite - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a ReadOnly. */ - interface IReadOnly { - - /** ReadOnly readTime */ - readTime?: (google.protobuf.ITimestamp|null); - } - - /** Represents a ReadOnly. */ - class ReadOnly implements IReadOnly { - - /** - * Constructs a new ReadOnly. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.TransactionOptions.IReadOnly); - - /** ReadOnly readTime. */ - public readTime?: (google.protobuf.ITimestamp|null); - - /** ReadOnly consistencySelector. */ - public consistencySelector?: "readTime"; - - /** - * Creates a new ReadOnly instance using the specified properties. - * @param [properties] Properties to set - * @returns ReadOnly instance - */ - public static create(properties?: google.firestore.v1beta1.TransactionOptions.IReadOnly): google.firestore.v1beta1.TransactionOptions.ReadOnly; - - /** - * Encodes the specified ReadOnly message. Does not implicitly {@link google.firestore.v1beta1.TransactionOptions.ReadOnly.verify|verify} messages. - * @param message ReadOnly message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.TransactionOptions.IReadOnly, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified ReadOnly message, length delimited. Does not implicitly {@link google.firestore.v1beta1.TransactionOptions.ReadOnly.verify|verify} messages. - * @param message ReadOnly message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.TransactionOptions.IReadOnly, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a ReadOnly message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns ReadOnly - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.TransactionOptions.ReadOnly; - - /** - * Decodes a ReadOnly message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns ReadOnly - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.TransactionOptions.ReadOnly; - - /** - * Verifies a ReadOnly message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a ReadOnly message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns ReadOnly - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.TransactionOptions.ReadOnly; - - /** - * Creates a plain object from a ReadOnly message. Also converts values to other types if specified. - * @param message ReadOnly - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.TransactionOptions.ReadOnly, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this ReadOnly to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for ReadOnly - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - } - - /** Properties of a Document. */ - interface IDocument { - - /** Document name */ - name?: (string|null); - - /** Document fields */ - fields?: ({ [k: string]: google.firestore.v1beta1.IValue }|null); - - /** Document createTime */ - createTime?: (google.protobuf.ITimestamp|null); - - /** Document updateTime */ - updateTime?: (google.protobuf.ITimestamp|null); - } - - /** Represents a Document. */ - class Document implements IDocument { - - /** - * Constructs a new Document. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IDocument); - - /** Document name. */ - public name: string; - - /** Document fields. */ - public fields: { [k: string]: google.firestore.v1beta1.IValue }; - - /** Document createTime. */ - public createTime?: (google.protobuf.ITimestamp|null); - - /** Document updateTime. */ - public updateTime?: (google.protobuf.ITimestamp|null); - - /** - * Creates a new Document instance using the specified properties. - * @param [properties] Properties to set - * @returns Document instance - */ - public static create(properties?: google.firestore.v1beta1.IDocument): google.firestore.v1beta1.Document; - - /** - * Encodes the specified Document message. Does not implicitly {@link google.firestore.v1beta1.Document.verify|verify} messages. - * @param message Document message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IDocument, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified Document message, length delimited. Does not implicitly {@link google.firestore.v1beta1.Document.verify|verify} messages. - * @param message Document message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IDocument, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a Document message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns Document - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.Document; - - /** - * Decodes a Document message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns Document - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.Document; - - /** - * Verifies a Document message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a Document message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns Document - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.Document; - - /** - * Creates a plain object from a Document message. Also converts values to other types if specified. - * @param message Document - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.Document, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this Document to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for Document - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a Value. */ - interface IValue { - - /** Value nullValue */ - nullValue?: (google.protobuf.NullValue|keyof typeof google.protobuf.NullValue|null); - - /** Value booleanValue */ - booleanValue?: (boolean|null); - - /** Value integerValue */ - integerValue?: (number|Long|string|null); - - /** Value doubleValue */ - doubleValue?: (number|null); - - /** Value timestampValue */ - timestampValue?: (google.protobuf.ITimestamp|null); - - /** Value stringValue */ - stringValue?: (string|null); - - /** Value bytesValue */ - bytesValue?: (Uint8Array|Buffer|string|null); - - /** Value referenceValue */ - referenceValue?: (string|null); - - /** Value geoPointValue */ - geoPointValue?: (google.type.ILatLng|null); - - /** Value arrayValue */ - arrayValue?: (google.firestore.v1beta1.IArrayValue|null); - - /** Value mapValue */ - mapValue?: (google.firestore.v1beta1.IMapValue|null); - } - - /** Represents a Value. */ - class Value implements IValue { - - /** - * Constructs a new Value. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IValue); - - /** Value nullValue. */ - public nullValue?: (google.protobuf.NullValue|keyof typeof google.protobuf.NullValue|null); - - /** Value booleanValue. */ - public booleanValue?: (boolean|null); - - /** Value integerValue. */ - public integerValue?: (number|Long|string|null); - - /** Value doubleValue. */ - public doubleValue?: (number|null); - - /** Value timestampValue. */ - public timestampValue?: (google.protobuf.ITimestamp|null); - - /** Value stringValue. */ - public stringValue?: (string|null); - - /** Value bytesValue. */ - public bytesValue?: (Uint8Array|Buffer|string|null); - - /** Value referenceValue. */ - public referenceValue?: (string|null); - - /** Value geoPointValue. */ - public geoPointValue?: (google.type.ILatLng|null); - - /** Value arrayValue. */ - public arrayValue?: (google.firestore.v1beta1.IArrayValue|null); - - /** Value mapValue. */ - public mapValue?: (google.firestore.v1beta1.IMapValue|null); - - /** Value valueType. */ - public valueType?: ("nullValue"|"booleanValue"|"integerValue"|"doubleValue"|"timestampValue"|"stringValue"|"bytesValue"|"referenceValue"|"geoPointValue"|"arrayValue"|"mapValue"); - - /** - * Creates a new Value instance using the specified properties. - * @param [properties] Properties to set - * @returns Value instance - */ - public static create(properties?: google.firestore.v1beta1.IValue): google.firestore.v1beta1.Value; - - /** - * Encodes the specified Value message. Does not implicitly {@link google.firestore.v1beta1.Value.verify|verify} messages. - * @param message Value message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IValue, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified Value message, length delimited. Does not implicitly {@link google.firestore.v1beta1.Value.verify|verify} messages. - * @param message Value message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IValue, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a Value message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns Value - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.Value; - - /** - * Decodes a Value message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns Value - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.Value; - - /** - * Verifies a Value message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a Value message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns Value - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.Value; - - /** - * Creates a plain object from a Value message. Also converts values to other types if specified. - * @param message Value - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.Value, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this Value to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for Value - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of an ArrayValue. */ - interface IArrayValue { - - /** ArrayValue values */ - values?: (google.firestore.v1beta1.IValue[]|null); - } - - /** Represents an ArrayValue. */ - class ArrayValue implements IArrayValue { - - /** - * Constructs a new ArrayValue. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IArrayValue); - - /** ArrayValue values. */ - public values: google.firestore.v1beta1.IValue[]; - - /** - * Creates a new ArrayValue instance using the specified properties. - * @param [properties] Properties to set - * @returns ArrayValue instance - */ - public static create(properties?: google.firestore.v1beta1.IArrayValue): google.firestore.v1beta1.ArrayValue; - - /** - * Encodes the specified ArrayValue message. Does not implicitly {@link google.firestore.v1beta1.ArrayValue.verify|verify} messages. - * @param message ArrayValue message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IArrayValue, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified ArrayValue message, length delimited. Does not implicitly {@link google.firestore.v1beta1.ArrayValue.verify|verify} messages. - * @param message ArrayValue message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IArrayValue, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes an ArrayValue message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns ArrayValue - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.ArrayValue; - - /** - * Decodes an ArrayValue message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns ArrayValue - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.ArrayValue; - - /** - * Verifies an ArrayValue message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates an ArrayValue message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns ArrayValue - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.ArrayValue; - - /** - * Creates a plain object from an ArrayValue message. Also converts values to other types if specified. - * @param message ArrayValue - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.ArrayValue, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this ArrayValue to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for ArrayValue - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a MapValue. */ - interface IMapValue { - - /** MapValue fields */ - fields?: ({ [k: string]: google.firestore.v1beta1.IValue }|null); - } - - /** Represents a MapValue. */ - class MapValue implements IMapValue { - - /** - * Constructs a new MapValue. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IMapValue); - - /** MapValue fields. */ - public fields: { [k: string]: google.firestore.v1beta1.IValue }; - - /** - * Creates a new MapValue instance using the specified properties. - * @param [properties] Properties to set - * @returns MapValue instance - */ - public static create(properties?: google.firestore.v1beta1.IMapValue): google.firestore.v1beta1.MapValue; - - /** - * Encodes the specified MapValue message. Does not implicitly {@link google.firestore.v1beta1.MapValue.verify|verify} messages. - * @param message MapValue message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IMapValue, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified MapValue message, length delimited. Does not implicitly {@link google.firestore.v1beta1.MapValue.verify|verify} messages. - * @param message MapValue message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IMapValue, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a MapValue message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns MapValue - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.MapValue; - - /** - * Decodes a MapValue message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns MapValue - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.MapValue; - - /** - * Verifies a MapValue message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a MapValue message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns MapValue - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.MapValue; - - /** - * Creates a plain object from a MapValue message. Also converts values to other types if specified. - * @param message MapValue - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.MapValue, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this MapValue to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for MapValue - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Represents a Firestore */ - class Firestore extends $protobuf.rpc.Service { - - /** - * Constructs a new Firestore service. - * @param rpcImpl RPC implementation - * @param [requestDelimited=false] Whether requests are length-delimited - * @param [responseDelimited=false] Whether responses are length-delimited - */ - constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean); - - /** - * Creates new Firestore service using the specified rpc implementation. - * @param rpcImpl RPC implementation - * @param [requestDelimited=false] Whether requests are length-delimited - * @param [responseDelimited=false] Whether responses are length-delimited - * @returns RPC service. Useful where requests and/or responses are streamed. - */ - public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): Firestore; - - /** - * Calls GetDocument. - * @param request GetDocumentRequest message or plain object - * @param callback Node-style callback called with the error, if any, and Document - */ - public getDocument(request: google.firestore.v1beta1.IGetDocumentRequest, callback: google.firestore.v1beta1.Firestore.GetDocumentCallback): void; - - /** - * Calls GetDocument. - * @param request GetDocumentRequest message or plain object - * @returns Promise - */ - public getDocument(request: google.firestore.v1beta1.IGetDocumentRequest): Promise; - - /** - * Calls ListDocuments. - * @param request ListDocumentsRequest message or plain object - * @param callback Node-style callback called with the error, if any, and ListDocumentsResponse - */ - public listDocuments(request: google.firestore.v1beta1.IListDocumentsRequest, callback: google.firestore.v1beta1.Firestore.ListDocumentsCallback): void; - - /** - * Calls ListDocuments. - * @param request ListDocumentsRequest message or plain object - * @returns Promise - */ - public listDocuments(request: google.firestore.v1beta1.IListDocumentsRequest): Promise; - - /** - * Calls UpdateDocument. - * @param request UpdateDocumentRequest message or plain object - * @param callback Node-style callback called with the error, if any, and Document - */ - public updateDocument(request: google.firestore.v1beta1.IUpdateDocumentRequest, callback: google.firestore.v1beta1.Firestore.UpdateDocumentCallback): void; - - /** - * Calls UpdateDocument. - * @param request UpdateDocumentRequest message or plain object - * @returns Promise - */ - public updateDocument(request: google.firestore.v1beta1.IUpdateDocumentRequest): Promise; - - /** - * Calls DeleteDocument. - * @param request DeleteDocumentRequest message or plain object - * @param callback Node-style callback called with the error, if any, and Empty - */ - public deleteDocument(request: google.firestore.v1beta1.IDeleteDocumentRequest, callback: google.firestore.v1beta1.Firestore.DeleteDocumentCallback): void; - - /** - * Calls DeleteDocument. - * @param request DeleteDocumentRequest message or plain object - * @returns Promise - */ - public deleteDocument(request: google.firestore.v1beta1.IDeleteDocumentRequest): Promise; - - /** - * Calls BatchGetDocuments. - * @param request BatchGetDocumentsRequest message or plain object - * @param callback Node-style callback called with the error, if any, and BatchGetDocumentsResponse - */ - public batchGetDocuments(request: google.firestore.v1beta1.IBatchGetDocumentsRequest, callback: google.firestore.v1beta1.Firestore.BatchGetDocumentsCallback): void; - - /** - * Calls BatchGetDocuments. - * @param request BatchGetDocumentsRequest message or plain object - * @returns Promise - */ - public batchGetDocuments(request: google.firestore.v1beta1.IBatchGetDocumentsRequest): Promise; - - /** - * Calls BeginTransaction. - * @param request BeginTransactionRequest message or plain object - * @param callback Node-style callback called with the error, if any, and BeginTransactionResponse - */ - public beginTransaction(request: google.firestore.v1beta1.IBeginTransactionRequest, callback: google.firestore.v1beta1.Firestore.BeginTransactionCallback): void; - - /** - * Calls BeginTransaction. - * @param request BeginTransactionRequest message or plain object - * @returns Promise - */ - public beginTransaction(request: google.firestore.v1beta1.IBeginTransactionRequest): Promise; - - /** - * Calls Commit. - * @param request CommitRequest message or plain object - * @param callback Node-style callback called with the error, if any, and CommitResponse - */ - public commit(request: google.firestore.v1beta1.ICommitRequest, callback: google.firestore.v1beta1.Firestore.CommitCallback): void; - - /** - * Calls Commit. - * @param request CommitRequest message or plain object - * @returns Promise - */ - public commit(request: google.firestore.v1beta1.ICommitRequest): Promise; - - /** - * Calls Rollback. - * @param request RollbackRequest message or plain object - * @param callback Node-style callback called with the error, if any, and Empty - */ - public rollback(request: google.firestore.v1beta1.IRollbackRequest, callback: google.firestore.v1beta1.Firestore.RollbackCallback): void; - - /** - * Calls Rollback. - * @param request RollbackRequest message or plain object - * @returns Promise - */ - public rollback(request: google.firestore.v1beta1.IRollbackRequest): Promise; - - /** - * Calls RunQuery. - * @param request RunQueryRequest message or plain object - * @param callback Node-style callback called with the error, if any, and RunQueryResponse - */ - public runQuery(request: google.firestore.v1beta1.IRunQueryRequest, callback: google.firestore.v1beta1.Firestore.RunQueryCallback): void; - - /** - * Calls RunQuery. - * @param request RunQueryRequest message or plain object - * @returns Promise - */ - public runQuery(request: google.firestore.v1beta1.IRunQueryRequest): Promise; - - /** - * Calls PartitionQuery. - * @param request PartitionQueryRequest message or plain object - * @param callback Node-style callback called with the error, if any, and PartitionQueryResponse - */ - public partitionQuery(request: google.firestore.v1beta1.IPartitionQueryRequest, callback: google.firestore.v1beta1.Firestore.PartitionQueryCallback): void; - - /** - * Calls PartitionQuery. - * @param request PartitionQueryRequest message or plain object - * @returns Promise - */ - public partitionQuery(request: google.firestore.v1beta1.IPartitionQueryRequest): Promise; - - /** - * Calls Write. - * @param request WriteRequest message or plain object - * @param callback Node-style callback called with the error, if any, and WriteResponse - */ - public write(request: google.firestore.v1beta1.IWriteRequest, callback: google.firestore.v1beta1.Firestore.WriteCallback): void; - - /** - * Calls Write. - * @param request WriteRequest message or plain object - * @returns Promise - */ - public write(request: google.firestore.v1beta1.IWriteRequest): Promise; - - /** - * Calls Listen. - * @param request ListenRequest message or plain object - * @param callback Node-style callback called with the error, if any, and ListenResponse - */ - public listen(request: google.firestore.v1beta1.IListenRequest, callback: google.firestore.v1beta1.Firestore.ListenCallback): void; - - /** - * Calls Listen. - * @param request ListenRequest message or plain object - * @returns Promise - */ - public listen(request: google.firestore.v1beta1.IListenRequest): Promise; - - /** - * Calls ListCollectionIds. - * @param request ListCollectionIdsRequest message or plain object - * @param callback Node-style callback called with the error, if any, and ListCollectionIdsResponse - */ - public listCollectionIds(request: google.firestore.v1beta1.IListCollectionIdsRequest, callback: google.firestore.v1beta1.Firestore.ListCollectionIdsCallback): void; - - /** - * Calls ListCollectionIds. - * @param request ListCollectionIdsRequest message or plain object - * @returns Promise - */ - public listCollectionIds(request: google.firestore.v1beta1.IListCollectionIdsRequest): Promise; - - /** - * Calls BatchWrite. - * @param request BatchWriteRequest message or plain object - * @param callback Node-style callback called with the error, if any, and BatchWriteResponse - */ - public batchWrite(request: google.firestore.v1beta1.IBatchWriteRequest, callback: google.firestore.v1beta1.Firestore.BatchWriteCallback): void; - - /** - * Calls BatchWrite. - * @param request BatchWriteRequest message or plain object - * @returns Promise - */ - public batchWrite(request: google.firestore.v1beta1.IBatchWriteRequest): Promise; - - /** - * Calls CreateDocument. - * @param request CreateDocumentRequest message or plain object - * @param callback Node-style callback called with the error, if any, and Document - */ - public createDocument(request: google.firestore.v1beta1.ICreateDocumentRequest, callback: google.firestore.v1beta1.Firestore.CreateDocumentCallback): void; - - /** - * Calls CreateDocument. - * @param request CreateDocumentRequest message or plain object - * @returns Promise - */ - public createDocument(request: google.firestore.v1beta1.ICreateDocumentRequest): Promise; - } - - namespace Firestore { - - /** - * Callback as used by {@link google.firestore.v1beta1.Firestore|getDocument}. - * @param error Error, if any - * @param [response] Document - */ - type GetDocumentCallback = (error: (Error|null), response?: google.firestore.v1beta1.Document) => void; - - /** - * Callback as used by {@link google.firestore.v1beta1.Firestore|listDocuments}. - * @param error Error, if any - * @param [response] ListDocumentsResponse - */ - type ListDocumentsCallback = (error: (Error|null), response?: google.firestore.v1beta1.ListDocumentsResponse) => void; - - /** - * Callback as used by {@link google.firestore.v1beta1.Firestore|updateDocument}. - * @param error Error, if any - * @param [response] Document - */ - type UpdateDocumentCallback = (error: (Error|null), response?: google.firestore.v1beta1.Document) => void; - - /** - * Callback as used by {@link google.firestore.v1beta1.Firestore|deleteDocument}. - * @param error Error, if any - * @param [response] Empty - */ - type DeleteDocumentCallback = (error: (Error|null), response?: google.protobuf.Empty) => void; - - /** - * Callback as used by {@link google.firestore.v1beta1.Firestore|batchGetDocuments}. - * @param error Error, if any - * @param [response] BatchGetDocumentsResponse - */ - type BatchGetDocumentsCallback = (error: (Error|null), response?: google.firestore.v1beta1.BatchGetDocumentsResponse) => void; - - /** - * Callback as used by {@link google.firestore.v1beta1.Firestore|beginTransaction}. - * @param error Error, if any - * @param [response] BeginTransactionResponse - */ - type BeginTransactionCallback = (error: (Error|null), response?: google.firestore.v1beta1.BeginTransactionResponse) => void; - - /** - * Callback as used by {@link google.firestore.v1beta1.Firestore|commit}. - * @param error Error, if any - * @param [response] CommitResponse - */ - type CommitCallback = (error: (Error|null), response?: google.firestore.v1beta1.CommitResponse) => void; - - /** - * Callback as used by {@link google.firestore.v1beta1.Firestore|rollback}. - * @param error Error, if any - * @param [response] Empty - */ - type RollbackCallback = (error: (Error|null), response?: google.protobuf.Empty) => void; - - /** - * Callback as used by {@link google.firestore.v1beta1.Firestore|runQuery}. - * @param error Error, if any - * @param [response] RunQueryResponse - */ - type RunQueryCallback = (error: (Error|null), response?: google.firestore.v1beta1.RunQueryResponse) => void; - - /** - * Callback as used by {@link google.firestore.v1beta1.Firestore|partitionQuery}. - * @param error Error, if any - * @param [response] PartitionQueryResponse - */ - type PartitionQueryCallback = (error: (Error|null), response?: google.firestore.v1beta1.PartitionQueryResponse) => void; - - /** - * Callback as used by {@link google.firestore.v1beta1.Firestore|write}. - * @param error Error, if any - * @param [response] WriteResponse - */ - type WriteCallback = (error: (Error|null), response?: google.firestore.v1beta1.WriteResponse) => void; - - /** - * Callback as used by {@link google.firestore.v1beta1.Firestore|listen}. - * @param error Error, if any - * @param [response] ListenResponse - */ - type ListenCallback = (error: (Error|null), response?: google.firestore.v1beta1.ListenResponse) => void; - - /** - * Callback as used by {@link google.firestore.v1beta1.Firestore|listCollectionIds}. - * @param error Error, if any - * @param [response] ListCollectionIdsResponse - */ - type ListCollectionIdsCallback = (error: (Error|null), response?: google.firestore.v1beta1.ListCollectionIdsResponse) => void; - - /** - * Callback as used by {@link google.firestore.v1beta1.Firestore|batchWrite}. - * @param error Error, if any - * @param [response] BatchWriteResponse - */ - type BatchWriteCallback = (error: (Error|null), response?: google.firestore.v1beta1.BatchWriteResponse) => void; - - /** - * Callback as used by {@link google.firestore.v1beta1.Firestore|createDocument}. - * @param error Error, if any - * @param [response] Document - */ - type CreateDocumentCallback = (error: (Error|null), response?: google.firestore.v1beta1.Document) => void; - } - - /** Properties of a GetDocumentRequest. */ - interface IGetDocumentRequest { - - /** GetDocumentRequest name */ - name?: (string|null); - - /** GetDocumentRequest mask */ - mask?: (google.firestore.v1beta1.IDocumentMask|null); - - /** GetDocumentRequest transaction */ - transaction?: (Uint8Array|Buffer|string|null); - - /** GetDocumentRequest readTime */ - readTime?: (google.protobuf.ITimestamp|null); - } - - /** Represents a GetDocumentRequest. */ - class GetDocumentRequest implements IGetDocumentRequest { - - /** - * Constructs a new GetDocumentRequest. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IGetDocumentRequest); - - /** GetDocumentRequest name. */ - public name: string; - - /** GetDocumentRequest mask. */ - public mask?: (google.firestore.v1beta1.IDocumentMask|null); - - /** GetDocumentRequest transaction. */ - public transaction?: (Uint8Array|Buffer|string|null); - - /** GetDocumentRequest readTime. */ - public readTime?: (google.protobuf.ITimestamp|null); - - /** GetDocumentRequest consistencySelector. */ - public consistencySelector?: ("transaction"|"readTime"); - - /** - * Creates a new GetDocumentRequest instance using the specified properties. - * @param [properties] Properties to set - * @returns GetDocumentRequest instance - */ - public static create(properties?: google.firestore.v1beta1.IGetDocumentRequest): google.firestore.v1beta1.GetDocumentRequest; - - /** - * Encodes the specified GetDocumentRequest message. Does not implicitly {@link google.firestore.v1beta1.GetDocumentRequest.verify|verify} messages. - * @param message GetDocumentRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IGetDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified GetDocumentRequest message, length delimited. Does not implicitly {@link google.firestore.v1beta1.GetDocumentRequest.verify|verify} messages. - * @param message GetDocumentRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IGetDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a GetDocumentRequest message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns GetDocumentRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.GetDocumentRequest; - - /** - * Decodes a GetDocumentRequest message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns GetDocumentRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.GetDocumentRequest; - - /** - * Verifies a GetDocumentRequest message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a GetDocumentRequest message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns GetDocumentRequest - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.GetDocumentRequest; - - /** - * Creates a plain object from a GetDocumentRequest message. Also converts values to other types if specified. - * @param message GetDocumentRequest - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.GetDocumentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this GetDocumentRequest to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for GetDocumentRequest - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a ListDocumentsRequest. */ - interface IListDocumentsRequest { - - /** ListDocumentsRequest parent */ - parent?: (string|null); - - /** ListDocumentsRequest collectionId */ - collectionId?: (string|null); - - /** ListDocumentsRequest pageSize */ - pageSize?: (number|null); - - /** ListDocumentsRequest pageToken */ - pageToken?: (string|null); - - /** ListDocumentsRequest orderBy */ - orderBy?: (string|null); - - /** ListDocumentsRequest mask */ - mask?: (google.firestore.v1beta1.IDocumentMask|null); - - /** ListDocumentsRequest transaction */ - transaction?: (Uint8Array|Buffer|string|null); - - /** ListDocumentsRequest readTime */ - readTime?: (google.protobuf.ITimestamp|null); - - /** ListDocumentsRequest showMissing */ - showMissing?: (boolean|null); - } - - /** Represents a ListDocumentsRequest. */ - class ListDocumentsRequest implements IListDocumentsRequest { - - /** - * Constructs a new ListDocumentsRequest. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IListDocumentsRequest); - - /** ListDocumentsRequest parent. */ - public parent: string; - - /** ListDocumentsRequest collectionId. */ - public collectionId: string; - - /** ListDocumentsRequest pageSize. */ - public pageSize: number; - - /** ListDocumentsRequest pageToken. */ - public pageToken: string; - - /** ListDocumentsRequest orderBy. */ - public orderBy: string; - - /** ListDocumentsRequest mask. */ - public mask?: (google.firestore.v1beta1.IDocumentMask|null); - - /** ListDocumentsRequest transaction. */ - public transaction?: (Uint8Array|Buffer|string|null); - - /** ListDocumentsRequest readTime. */ - public readTime?: (google.protobuf.ITimestamp|null); - - /** ListDocumentsRequest showMissing. */ - public showMissing: boolean; - - /** ListDocumentsRequest consistencySelector. */ - public consistencySelector?: ("transaction"|"readTime"); - - /** - * Creates a new ListDocumentsRequest instance using the specified properties. - * @param [properties] Properties to set - * @returns ListDocumentsRequest instance - */ - public static create(properties?: google.firestore.v1beta1.IListDocumentsRequest): google.firestore.v1beta1.ListDocumentsRequest; - - /** - * Encodes the specified ListDocumentsRequest message. Does not implicitly {@link google.firestore.v1beta1.ListDocumentsRequest.verify|verify} messages. - * @param message ListDocumentsRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IListDocumentsRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified ListDocumentsRequest message, length delimited. Does not implicitly {@link google.firestore.v1beta1.ListDocumentsRequest.verify|verify} messages. - * @param message ListDocumentsRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IListDocumentsRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a ListDocumentsRequest message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns ListDocumentsRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.ListDocumentsRequest; - - /** - * Decodes a ListDocumentsRequest message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns ListDocumentsRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.ListDocumentsRequest; - - /** - * Verifies a ListDocumentsRequest message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a ListDocumentsRequest message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns ListDocumentsRequest - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.ListDocumentsRequest; - - /** - * Creates a plain object from a ListDocumentsRequest message. Also converts values to other types if specified. - * @param message ListDocumentsRequest - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.ListDocumentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this ListDocumentsRequest to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for ListDocumentsRequest - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a ListDocumentsResponse. */ - interface IListDocumentsResponse { - - /** ListDocumentsResponse documents */ - documents?: (google.firestore.v1beta1.IDocument[]|null); - - /** ListDocumentsResponse nextPageToken */ - nextPageToken?: (string|null); - } - - /** Represents a ListDocumentsResponse. */ - class ListDocumentsResponse implements IListDocumentsResponse { - - /** - * Constructs a new ListDocumentsResponse. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IListDocumentsResponse); - - /** ListDocumentsResponse documents. */ - public documents: google.firestore.v1beta1.IDocument[]; - - /** ListDocumentsResponse nextPageToken. */ - public nextPageToken: string; - - /** - * Creates a new ListDocumentsResponse instance using the specified properties. - * @param [properties] Properties to set - * @returns ListDocumentsResponse instance - */ - public static create(properties?: google.firestore.v1beta1.IListDocumentsResponse): google.firestore.v1beta1.ListDocumentsResponse; - - /** - * Encodes the specified ListDocumentsResponse message. Does not implicitly {@link google.firestore.v1beta1.ListDocumentsResponse.verify|verify} messages. - * @param message ListDocumentsResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IListDocumentsResponse, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified ListDocumentsResponse message, length delimited. Does not implicitly {@link google.firestore.v1beta1.ListDocumentsResponse.verify|verify} messages. - * @param message ListDocumentsResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IListDocumentsResponse, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a ListDocumentsResponse message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns ListDocumentsResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.ListDocumentsResponse; - - /** - * Decodes a ListDocumentsResponse message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns ListDocumentsResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.ListDocumentsResponse; - - /** - * Verifies a ListDocumentsResponse message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a ListDocumentsResponse message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns ListDocumentsResponse - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.ListDocumentsResponse; - - /** - * Creates a plain object from a ListDocumentsResponse message. Also converts values to other types if specified. - * @param message ListDocumentsResponse - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.ListDocumentsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this ListDocumentsResponse to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for ListDocumentsResponse - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a CreateDocumentRequest. */ - interface ICreateDocumentRequest { - - /** CreateDocumentRequest parent */ - parent?: (string|null); - - /** CreateDocumentRequest collectionId */ - collectionId?: (string|null); - - /** CreateDocumentRequest documentId */ - documentId?: (string|null); - - /** CreateDocumentRequest document */ - document?: (google.firestore.v1beta1.IDocument|null); - - /** CreateDocumentRequest mask */ - mask?: (google.firestore.v1beta1.IDocumentMask|null); - } - - /** Represents a CreateDocumentRequest. */ - class CreateDocumentRequest implements ICreateDocumentRequest { - - /** - * Constructs a new CreateDocumentRequest. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.ICreateDocumentRequest); - - /** CreateDocumentRequest parent. */ - public parent: string; - - /** CreateDocumentRequest collectionId. */ - public collectionId: string; - - /** CreateDocumentRequest documentId. */ - public documentId: string; - - /** CreateDocumentRequest document. */ - public document?: (google.firestore.v1beta1.IDocument|null); - - /** CreateDocumentRequest mask. */ - public mask?: (google.firestore.v1beta1.IDocumentMask|null); - - /** - * Creates a new CreateDocumentRequest instance using the specified properties. - * @param [properties] Properties to set - * @returns CreateDocumentRequest instance - */ - public static create(properties?: google.firestore.v1beta1.ICreateDocumentRequest): google.firestore.v1beta1.CreateDocumentRequest; - - /** - * Encodes the specified CreateDocumentRequest message. Does not implicitly {@link google.firestore.v1beta1.CreateDocumentRequest.verify|verify} messages. - * @param message CreateDocumentRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.ICreateDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified CreateDocumentRequest message, length delimited. Does not implicitly {@link google.firestore.v1beta1.CreateDocumentRequest.verify|verify} messages. - * @param message CreateDocumentRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.ICreateDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a CreateDocumentRequest message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns CreateDocumentRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.CreateDocumentRequest; - - /** - * Decodes a CreateDocumentRequest message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns CreateDocumentRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.CreateDocumentRequest; - - /** - * Verifies a CreateDocumentRequest message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a CreateDocumentRequest message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns CreateDocumentRequest - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.CreateDocumentRequest; - - /** - * Creates a plain object from a CreateDocumentRequest message. Also converts values to other types if specified. - * @param message CreateDocumentRequest - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.CreateDocumentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this CreateDocumentRequest to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for CreateDocumentRequest - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of an UpdateDocumentRequest. */ - interface IUpdateDocumentRequest { - - /** UpdateDocumentRequest document */ - document?: (google.firestore.v1beta1.IDocument|null); - - /** UpdateDocumentRequest updateMask */ - updateMask?: (google.firestore.v1beta1.IDocumentMask|null); - - /** UpdateDocumentRequest mask */ - mask?: (google.firestore.v1beta1.IDocumentMask|null); - - /** UpdateDocumentRequest currentDocument */ - currentDocument?: (google.firestore.v1beta1.IPrecondition|null); - } - - /** Represents an UpdateDocumentRequest. */ - class UpdateDocumentRequest implements IUpdateDocumentRequest { - - /** - * Constructs a new UpdateDocumentRequest. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IUpdateDocumentRequest); - - /** UpdateDocumentRequest document. */ - public document?: (google.firestore.v1beta1.IDocument|null); - - /** UpdateDocumentRequest updateMask. */ - public updateMask?: (google.firestore.v1beta1.IDocumentMask|null); - - /** UpdateDocumentRequest mask. */ - public mask?: (google.firestore.v1beta1.IDocumentMask|null); - - /** UpdateDocumentRequest currentDocument. */ - public currentDocument?: (google.firestore.v1beta1.IPrecondition|null); - - /** - * Creates a new UpdateDocumentRequest instance using the specified properties. - * @param [properties] Properties to set - * @returns UpdateDocumentRequest instance - */ - public static create(properties?: google.firestore.v1beta1.IUpdateDocumentRequest): google.firestore.v1beta1.UpdateDocumentRequest; - - /** - * Encodes the specified UpdateDocumentRequest message. Does not implicitly {@link google.firestore.v1beta1.UpdateDocumentRequest.verify|verify} messages. - * @param message UpdateDocumentRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IUpdateDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified UpdateDocumentRequest message, length delimited. Does not implicitly {@link google.firestore.v1beta1.UpdateDocumentRequest.verify|verify} messages. - * @param message UpdateDocumentRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IUpdateDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes an UpdateDocumentRequest message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns UpdateDocumentRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.UpdateDocumentRequest; - - /** - * Decodes an UpdateDocumentRequest message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns UpdateDocumentRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.UpdateDocumentRequest; - - /** - * Verifies an UpdateDocumentRequest message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates an UpdateDocumentRequest message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns UpdateDocumentRequest - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.UpdateDocumentRequest; - - /** - * Creates a plain object from an UpdateDocumentRequest message. Also converts values to other types if specified. - * @param message UpdateDocumentRequest - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.UpdateDocumentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this UpdateDocumentRequest to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for UpdateDocumentRequest - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a DeleteDocumentRequest. */ - interface IDeleteDocumentRequest { - - /** DeleteDocumentRequest name */ - name?: (string|null); - - /** DeleteDocumentRequest currentDocument */ - currentDocument?: (google.firestore.v1beta1.IPrecondition|null); - } - - /** Represents a DeleteDocumentRequest. */ - class DeleteDocumentRequest implements IDeleteDocumentRequest { - - /** - * Constructs a new DeleteDocumentRequest. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IDeleteDocumentRequest); - - /** DeleteDocumentRequest name. */ - public name: string; - - /** DeleteDocumentRequest currentDocument. */ - public currentDocument?: (google.firestore.v1beta1.IPrecondition|null); - - /** - * Creates a new DeleteDocumentRequest instance using the specified properties. - * @param [properties] Properties to set - * @returns DeleteDocumentRequest instance - */ - public static create(properties?: google.firestore.v1beta1.IDeleteDocumentRequest): google.firestore.v1beta1.DeleteDocumentRequest; - - /** - * Encodes the specified DeleteDocumentRequest message. Does not implicitly {@link google.firestore.v1beta1.DeleteDocumentRequest.verify|verify} messages. - * @param message DeleteDocumentRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IDeleteDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified DeleteDocumentRequest message, length delimited. Does not implicitly {@link google.firestore.v1beta1.DeleteDocumentRequest.verify|verify} messages. - * @param message DeleteDocumentRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IDeleteDocumentRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a DeleteDocumentRequest message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns DeleteDocumentRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.DeleteDocumentRequest; - - /** - * Decodes a DeleteDocumentRequest message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns DeleteDocumentRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.DeleteDocumentRequest; - - /** - * Verifies a DeleteDocumentRequest message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a DeleteDocumentRequest message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns DeleteDocumentRequest - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.DeleteDocumentRequest; - - /** - * Creates a plain object from a DeleteDocumentRequest message. Also converts values to other types if specified. - * @param message DeleteDocumentRequest - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.DeleteDocumentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this DeleteDocumentRequest to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for DeleteDocumentRequest - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a BatchGetDocumentsRequest. */ - interface IBatchGetDocumentsRequest { - - /** BatchGetDocumentsRequest database */ - database?: (string|null); - - /** BatchGetDocumentsRequest documents */ - documents?: (string[]|null); - - /** BatchGetDocumentsRequest mask */ - mask?: (google.firestore.v1beta1.IDocumentMask|null); - - /** BatchGetDocumentsRequest transaction */ - transaction?: (Uint8Array|Buffer|string|null); - - /** BatchGetDocumentsRequest newTransaction */ - newTransaction?: (google.firestore.v1beta1.ITransactionOptions|null); - - /** BatchGetDocumentsRequest readTime */ - readTime?: (google.protobuf.ITimestamp|null); - } - - /** Represents a BatchGetDocumentsRequest. */ - class BatchGetDocumentsRequest implements IBatchGetDocumentsRequest { - - /** - * Constructs a new BatchGetDocumentsRequest. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IBatchGetDocumentsRequest); - - /** BatchGetDocumentsRequest database. */ - public database: string; - - /** BatchGetDocumentsRequest documents. */ - public documents: string[]; - - /** BatchGetDocumentsRequest mask. */ - public mask?: (google.firestore.v1beta1.IDocumentMask|null); - - /** BatchGetDocumentsRequest transaction. */ - public transaction?: (Uint8Array|Buffer|string|null); - - /** BatchGetDocumentsRequest newTransaction. */ - public newTransaction?: (google.firestore.v1beta1.ITransactionOptions|null); - - /** BatchGetDocumentsRequest readTime. */ - public readTime?: (google.protobuf.ITimestamp|null); - - /** BatchGetDocumentsRequest consistencySelector. */ - public consistencySelector?: ("transaction"|"newTransaction"|"readTime"); - - /** - * Creates a new BatchGetDocumentsRequest instance using the specified properties. - * @param [properties] Properties to set - * @returns BatchGetDocumentsRequest instance - */ - public static create(properties?: google.firestore.v1beta1.IBatchGetDocumentsRequest): google.firestore.v1beta1.BatchGetDocumentsRequest; - - /** - * Encodes the specified BatchGetDocumentsRequest message. Does not implicitly {@link google.firestore.v1beta1.BatchGetDocumentsRequest.verify|verify} messages. - * @param message BatchGetDocumentsRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IBatchGetDocumentsRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified BatchGetDocumentsRequest message, length delimited. Does not implicitly {@link google.firestore.v1beta1.BatchGetDocumentsRequest.verify|verify} messages. - * @param message BatchGetDocumentsRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IBatchGetDocumentsRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a BatchGetDocumentsRequest message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns BatchGetDocumentsRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.BatchGetDocumentsRequest; - - /** - * Decodes a BatchGetDocumentsRequest message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns BatchGetDocumentsRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.BatchGetDocumentsRequest; - - /** - * Verifies a BatchGetDocumentsRequest message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a BatchGetDocumentsRequest message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns BatchGetDocumentsRequest - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.BatchGetDocumentsRequest; - - /** - * Creates a plain object from a BatchGetDocumentsRequest message. Also converts values to other types if specified. - * @param message BatchGetDocumentsRequest - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.BatchGetDocumentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this BatchGetDocumentsRequest to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for BatchGetDocumentsRequest - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a BatchGetDocumentsResponse. */ - interface IBatchGetDocumentsResponse { - - /** BatchGetDocumentsResponse found */ - found?: (google.firestore.v1beta1.IDocument|null); - - /** BatchGetDocumentsResponse missing */ - missing?: (string|null); - - /** BatchGetDocumentsResponse transaction */ - transaction?: (Uint8Array|Buffer|string|null); - - /** BatchGetDocumentsResponse readTime */ - readTime?: (google.protobuf.ITimestamp|null); - } - - /** Represents a BatchGetDocumentsResponse. */ - class BatchGetDocumentsResponse implements IBatchGetDocumentsResponse { - - /** - * Constructs a new BatchGetDocumentsResponse. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IBatchGetDocumentsResponse); - - /** BatchGetDocumentsResponse found. */ - public found?: (google.firestore.v1beta1.IDocument|null); - - /** BatchGetDocumentsResponse missing. */ - public missing?: (string|null); - - /** BatchGetDocumentsResponse transaction. */ - public transaction: (Uint8Array|Buffer|string); - - /** BatchGetDocumentsResponse readTime. */ - public readTime?: (google.protobuf.ITimestamp|null); - - /** BatchGetDocumentsResponse result. */ - public result?: ("found"|"missing"); - - /** - * Creates a new BatchGetDocumentsResponse instance using the specified properties. - * @param [properties] Properties to set - * @returns BatchGetDocumentsResponse instance - */ - public static create(properties?: google.firestore.v1beta1.IBatchGetDocumentsResponse): google.firestore.v1beta1.BatchGetDocumentsResponse; - - /** - * Encodes the specified BatchGetDocumentsResponse message. Does not implicitly {@link google.firestore.v1beta1.BatchGetDocumentsResponse.verify|verify} messages. - * @param message BatchGetDocumentsResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IBatchGetDocumentsResponse, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified BatchGetDocumentsResponse message, length delimited. Does not implicitly {@link google.firestore.v1beta1.BatchGetDocumentsResponse.verify|verify} messages. - * @param message BatchGetDocumentsResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IBatchGetDocumentsResponse, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a BatchGetDocumentsResponse message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns BatchGetDocumentsResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.BatchGetDocumentsResponse; - - /** - * Decodes a BatchGetDocumentsResponse message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns BatchGetDocumentsResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.BatchGetDocumentsResponse; - - /** - * Verifies a BatchGetDocumentsResponse message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a BatchGetDocumentsResponse message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns BatchGetDocumentsResponse - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.BatchGetDocumentsResponse; - - /** - * Creates a plain object from a BatchGetDocumentsResponse message. Also converts values to other types if specified. - * @param message BatchGetDocumentsResponse - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.BatchGetDocumentsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this BatchGetDocumentsResponse to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for BatchGetDocumentsResponse - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a BeginTransactionRequest. */ - interface IBeginTransactionRequest { - - /** BeginTransactionRequest database */ - database?: (string|null); - - /** BeginTransactionRequest options */ - options?: (google.firestore.v1beta1.ITransactionOptions|null); - } - - /** Represents a BeginTransactionRequest. */ - class BeginTransactionRequest implements IBeginTransactionRequest { - - /** - * Constructs a new BeginTransactionRequest. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IBeginTransactionRequest); - - /** BeginTransactionRequest database. */ - public database: string; - - /** BeginTransactionRequest options. */ - public options?: (google.firestore.v1beta1.ITransactionOptions|null); - - /** - * Creates a new BeginTransactionRequest instance using the specified properties. - * @param [properties] Properties to set - * @returns BeginTransactionRequest instance - */ - public static create(properties?: google.firestore.v1beta1.IBeginTransactionRequest): google.firestore.v1beta1.BeginTransactionRequest; - - /** - * Encodes the specified BeginTransactionRequest message. Does not implicitly {@link google.firestore.v1beta1.BeginTransactionRequest.verify|verify} messages. - * @param message BeginTransactionRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IBeginTransactionRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified BeginTransactionRequest message, length delimited. Does not implicitly {@link google.firestore.v1beta1.BeginTransactionRequest.verify|verify} messages. - * @param message BeginTransactionRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IBeginTransactionRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a BeginTransactionRequest message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns BeginTransactionRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.BeginTransactionRequest; - - /** - * Decodes a BeginTransactionRequest message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns BeginTransactionRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.BeginTransactionRequest; - - /** - * Verifies a BeginTransactionRequest message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a BeginTransactionRequest message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns BeginTransactionRequest - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.BeginTransactionRequest; - - /** - * Creates a plain object from a BeginTransactionRequest message. Also converts values to other types if specified. - * @param message BeginTransactionRequest - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.BeginTransactionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this BeginTransactionRequest to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for BeginTransactionRequest - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a BeginTransactionResponse. */ - interface IBeginTransactionResponse { - - /** BeginTransactionResponse transaction */ - transaction?: (Uint8Array|Buffer|string|null); - } - - /** Represents a BeginTransactionResponse. */ - class BeginTransactionResponse implements IBeginTransactionResponse { - - /** - * Constructs a new BeginTransactionResponse. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IBeginTransactionResponse); - - /** BeginTransactionResponse transaction. */ - public transaction: (Uint8Array|Buffer|string); - - /** - * Creates a new BeginTransactionResponse instance using the specified properties. - * @param [properties] Properties to set - * @returns BeginTransactionResponse instance - */ - public static create(properties?: google.firestore.v1beta1.IBeginTransactionResponse): google.firestore.v1beta1.BeginTransactionResponse; - - /** - * Encodes the specified BeginTransactionResponse message. Does not implicitly {@link google.firestore.v1beta1.BeginTransactionResponse.verify|verify} messages. - * @param message BeginTransactionResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IBeginTransactionResponse, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified BeginTransactionResponse message, length delimited. Does not implicitly {@link google.firestore.v1beta1.BeginTransactionResponse.verify|verify} messages. - * @param message BeginTransactionResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IBeginTransactionResponse, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a BeginTransactionResponse message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns BeginTransactionResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.BeginTransactionResponse; - - /** - * Decodes a BeginTransactionResponse message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns BeginTransactionResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.BeginTransactionResponse; - - /** - * Verifies a BeginTransactionResponse message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a BeginTransactionResponse message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns BeginTransactionResponse - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.BeginTransactionResponse; - - /** - * Creates a plain object from a BeginTransactionResponse message. Also converts values to other types if specified. - * @param message BeginTransactionResponse - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.BeginTransactionResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this BeginTransactionResponse to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for BeginTransactionResponse - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a CommitRequest. */ - interface ICommitRequest { - - /** CommitRequest database */ - database?: (string|null); - - /** CommitRequest writes */ - writes?: (google.firestore.v1beta1.IWrite[]|null); - - /** CommitRequest transaction */ - transaction?: (Uint8Array|Buffer|string|null); - } - - /** Represents a CommitRequest. */ - class CommitRequest implements ICommitRequest { - - /** - * Constructs a new CommitRequest. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.ICommitRequest); - - /** CommitRequest database. */ - public database: string; - - /** CommitRequest writes. */ - public writes: google.firestore.v1beta1.IWrite[]; - - /** CommitRequest transaction. */ - public transaction: (Uint8Array|Buffer|string); - - /** - * Creates a new CommitRequest instance using the specified properties. - * @param [properties] Properties to set - * @returns CommitRequest instance - */ - public static create(properties?: google.firestore.v1beta1.ICommitRequest): google.firestore.v1beta1.CommitRequest; - - /** - * Encodes the specified CommitRequest message. Does not implicitly {@link google.firestore.v1beta1.CommitRequest.verify|verify} messages. - * @param message CommitRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.ICommitRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified CommitRequest message, length delimited. Does not implicitly {@link google.firestore.v1beta1.CommitRequest.verify|verify} messages. - * @param message CommitRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.ICommitRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a CommitRequest message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns CommitRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.CommitRequest; - - /** - * Decodes a CommitRequest message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns CommitRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.CommitRequest; - - /** - * Verifies a CommitRequest message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a CommitRequest message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns CommitRequest - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.CommitRequest; - - /** - * Creates a plain object from a CommitRequest message. Also converts values to other types if specified. - * @param message CommitRequest - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.CommitRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this CommitRequest to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for CommitRequest - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a CommitResponse. */ - interface ICommitResponse { - - /** CommitResponse writeResults */ - writeResults?: (google.firestore.v1beta1.IWriteResult[]|null); - - /** CommitResponse commitTime */ - commitTime?: (google.protobuf.ITimestamp|null); - } - - /** Represents a CommitResponse. */ - class CommitResponse implements ICommitResponse { - - /** - * Constructs a new CommitResponse. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.ICommitResponse); - - /** CommitResponse writeResults. */ - public writeResults: google.firestore.v1beta1.IWriteResult[]; - - /** CommitResponse commitTime. */ - public commitTime?: (google.protobuf.ITimestamp|null); - - /** - * Creates a new CommitResponse instance using the specified properties. - * @param [properties] Properties to set - * @returns CommitResponse instance - */ - public static create(properties?: google.firestore.v1beta1.ICommitResponse): google.firestore.v1beta1.CommitResponse; - - /** - * Encodes the specified CommitResponse message. Does not implicitly {@link google.firestore.v1beta1.CommitResponse.verify|verify} messages. - * @param message CommitResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.ICommitResponse, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified CommitResponse message, length delimited. Does not implicitly {@link google.firestore.v1beta1.CommitResponse.verify|verify} messages. - * @param message CommitResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.ICommitResponse, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a CommitResponse message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns CommitResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.CommitResponse; - - /** - * Decodes a CommitResponse message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns CommitResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.CommitResponse; - - /** - * Verifies a CommitResponse message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a CommitResponse message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns CommitResponse - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.CommitResponse; - - /** - * Creates a plain object from a CommitResponse message. Also converts values to other types if specified. - * @param message CommitResponse - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.CommitResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this CommitResponse to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for CommitResponse - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a RollbackRequest. */ - interface IRollbackRequest { - - /** RollbackRequest database */ - database?: (string|null); - - /** RollbackRequest transaction */ - transaction?: (Uint8Array|Buffer|string|null); - } - - /** Represents a RollbackRequest. */ - class RollbackRequest implements IRollbackRequest { - - /** - * Constructs a new RollbackRequest. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IRollbackRequest); - - /** RollbackRequest database. */ - public database: string; - - /** RollbackRequest transaction. */ - public transaction: (Uint8Array|Buffer|string); - - /** - * Creates a new RollbackRequest instance using the specified properties. - * @param [properties] Properties to set - * @returns RollbackRequest instance - */ - public static create(properties?: google.firestore.v1beta1.IRollbackRequest): google.firestore.v1beta1.RollbackRequest; - - /** - * Encodes the specified RollbackRequest message. Does not implicitly {@link google.firestore.v1beta1.RollbackRequest.verify|verify} messages. - * @param message RollbackRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IRollbackRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified RollbackRequest message, length delimited. Does not implicitly {@link google.firestore.v1beta1.RollbackRequest.verify|verify} messages. - * @param message RollbackRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IRollbackRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a RollbackRequest message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns RollbackRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.RollbackRequest; - - /** - * Decodes a RollbackRequest message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns RollbackRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.RollbackRequest; - - /** - * Verifies a RollbackRequest message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a RollbackRequest message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns RollbackRequest - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.RollbackRequest; - - /** - * Creates a plain object from a RollbackRequest message. Also converts values to other types if specified. - * @param message RollbackRequest - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.RollbackRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this RollbackRequest to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for RollbackRequest - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a RunQueryRequest. */ - interface IRunQueryRequest { - - /** RunQueryRequest parent */ - parent?: (string|null); - - /** RunQueryRequest structuredQuery */ - structuredQuery?: (google.firestore.v1beta1.IStructuredQuery|null); - - /** RunQueryRequest transaction */ - transaction?: (Uint8Array|Buffer|string|null); - - /** RunQueryRequest newTransaction */ - newTransaction?: (google.firestore.v1beta1.ITransactionOptions|null); - - /** RunQueryRequest readTime */ - readTime?: (google.protobuf.ITimestamp|null); - } - - /** Represents a RunQueryRequest. */ - class RunQueryRequest implements IRunQueryRequest { - - /** - * Constructs a new RunQueryRequest. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IRunQueryRequest); - - /** RunQueryRequest parent. */ - public parent: string; - - /** RunQueryRequest structuredQuery. */ - public structuredQuery?: (google.firestore.v1beta1.IStructuredQuery|null); - - /** RunQueryRequest transaction. */ - public transaction?: (Uint8Array|Buffer|string|null); - - /** RunQueryRequest newTransaction. */ - public newTransaction?: (google.firestore.v1beta1.ITransactionOptions|null); - - /** RunQueryRequest readTime. */ - public readTime?: (google.protobuf.ITimestamp|null); - - /** RunQueryRequest queryType. */ - public queryType?: "structuredQuery"; - - /** RunQueryRequest consistencySelector. */ - public consistencySelector?: ("transaction"|"newTransaction"|"readTime"); - - /** - * Creates a new RunQueryRequest instance using the specified properties. - * @param [properties] Properties to set - * @returns RunQueryRequest instance - */ - public static create(properties?: google.firestore.v1beta1.IRunQueryRequest): google.firestore.v1beta1.RunQueryRequest; - - /** - * Encodes the specified RunQueryRequest message. Does not implicitly {@link google.firestore.v1beta1.RunQueryRequest.verify|verify} messages. - * @param message RunQueryRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IRunQueryRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified RunQueryRequest message, length delimited. Does not implicitly {@link google.firestore.v1beta1.RunQueryRequest.verify|verify} messages. - * @param message RunQueryRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IRunQueryRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a RunQueryRequest message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns RunQueryRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.RunQueryRequest; - - /** - * Decodes a RunQueryRequest message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns RunQueryRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.RunQueryRequest; - - /** - * Verifies a RunQueryRequest message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a RunQueryRequest message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns RunQueryRequest - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.RunQueryRequest; - - /** - * Creates a plain object from a RunQueryRequest message. Also converts values to other types if specified. - * @param message RunQueryRequest - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.RunQueryRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this RunQueryRequest to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for RunQueryRequest - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a RunQueryResponse. */ - interface IRunQueryResponse { - - /** RunQueryResponse transaction */ - transaction?: (Uint8Array|Buffer|string|null); - - /** RunQueryResponse document */ - document?: (google.firestore.v1beta1.IDocument|null); - - /** RunQueryResponse readTime */ - readTime?: (google.protobuf.ITimestamp|null); - - /** RunQueryResponse skippedResults */ - skippedResults?: (number|null); - } - - /** Represents a RunQueryResponse. */ - class RunQueryResponse implements IRunQueryResponse { - - /** - * Constructs a new RunQueryResponse. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IRunQueryResponse); - - /** RunQueryResponse transaction. */ - public transaction: (Uint8Array|Buffer|string); - - /** RunQueryResponse document. */ - public document?: (google.firestore.v1beta1.IDocument|null); - - /** RunQueryResponse readTime. */ - public readTime?: (google.protobuf.ITimestamp|null); - - /** RunQueryResponse skippedResults. */ - public skippedResults: number; - - /** - * Creates a new RunQueryResponse instance using the specified properties. - * @param [properties] Properties to set - * @returns RunQueryResponse instance - */ - public static create(properties?: google.firestore.v1beta1.IRunQueryResponse): google.firestore.v1beta1.RunQueryResponse; - - /** - * Encodes the specified RunQueryResponse message. Does not implicitly {@link google.firestore.v1beta1.RunQueryResponse.verify|verify} messages. - * @param message RunQueryResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IRunQueryResponse, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified RunQueryResponse message, length delimited. Does not implicitly {@link google.firestore.v1beta1.RunQueryResponse.verify|verify} messages. - * @param message RunQueryResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IRunQueryResponse, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a RunQueryResponse message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns RunQueryResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.RunQueryResponse; - - /** - * Decodes a RunQueryResponse message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns RunQueryResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.RunQueryResponse; - - /** - * Verifies a RunQueryResponse message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a RunQueryResponse message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns RunQueryResponse - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.RunQueryResponse; - - /** - * Creates a plain object from a RunQueryResponse message. Also converts values to other types if specified. - * @param message RunQueryResponse - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.RunQueryResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this RunQueryResponse to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for RunQueryResponse - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a PartitionQueryRequest. */ - interface IPartitionQueryRequest { - - /** PartitionQueryRequest parent */ - parent?: (string|null); - - /** PartitionQueryRequest structuredQuery */ - structuredQuery?: (google.firestore.v1beta1.IStructuredQuery|null); - - /** PartitionQueryRequest partitionCount */ - partitionCount?: (number|Long|string|null); - - /** PartitionQueryRequest pageToken */ - pageToken?: (string|null); - - /** PartitionQueryRequest pageSize */ - pageSize?: (number|null); - } - - /** Represents a PartitionQueryRequest. */ - class PartitionQueryRequest implements IPartitionQueryRequest { - - /** - * Constructs a new PartitionQueryRequest. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IPartitionQueryRequest); - - /** PartitionQueryRequest parent. */ - public parent: string; - - /** PartitionQueryRequest structuredQuery. */ - public structuredQuery?: (google.firestore.v1beta1.IStructuredQuery|null); - - /** PartitionQueryRequest partitionCount. */ - public partitionCount: (number|Long|string); - - /** PartitionQueryRequest pageToken. */ - public pageToken: string; - - /** PartitionQueryRequest pageSize. */ - public pageSize: number; - - /** PartitionQueryRequest queryType. */ - public queryType?: "structuredQuery"; - - /** - * Creates a new PartitionQueryRequest instance using the specified properties. - * @param [properties] Properties to set - * @returns PartitionQueryRequest instance - */ - public static create(properties?: google.firestore.v1beta1.IPartitionQueryRequest): google.firestore.v1beta1.PartitionQueryRequest; - - /** - * Encodes the specified PartitionQueryRequest message. Does not implicitly {@link google.firestore.v1beta1.PartitionQueryRequest.verify|verify} messages. - * @param message PartitionQueryRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IPartitionQueryRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified PartitionQueryRequest message, length delimited. Does not implicitly {@link google.firestore.v1beta1.PartitionQueryRequest.verify|verify} messages. - * @param message PartitionQueryRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IPartitionQueryRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a PartitionQueryRequest message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns PartitionQueryRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.PartitionQueryRequest; - - /** - * Decodes a PartitionQueryRequest message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns PartitionQueryRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.PartitionQueryRequest; - - /** - * Verifies a PartitionQueryRequest message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a PartitionQueryRequest message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns PartitionQueryRequest - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.PartitionQueryRequest; - - /** - * Creates a plain object from a PartitionQueryRequest message. Also converts values to other types if specified. - * @param message PartitionQueryRequest - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.PartitionQueryRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this PartitionQueryRequest to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for PartitionQueryRequest - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a PartitionQueryResponse. */ - interface IPartitionQueryResponse { - - /** PartitionQueryResponse partitions */ - partitions?: (google.firestore.v1beta1.ICursor[]|null); - - /** PartitionQueryResponse nextPageToken */ - nextPageToken?: (string|null); - } - - /** Represents a PartitionQueryResponse. */ - class PartitionQueryResponse implements IPartitionQueryResponse { - - /** - * Constructs a new PartitionQueryResponse. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IPartitionQueryResponse); - - /** PartitionQueryResponse partitions. */ - public partitions: google.firestore.v1beta1.ICursor[]; - - /** PartitionQueryResponse nextPageToken. */ - public nextPageToken: string; - - /** - * Creates a new PartitionQueryResponse instance using the specified properties. - * @param [properties] Properties to set - * @returns PartitionQueryResponse instance - */ - public static create(properties?: google.firestore.v1beta1.IPartitionQueryResponse): google.firestore.v1beta1.PartitionQueryResponse; - - /** - * Encodes the specified PartitionQueryResponse message. Does not implicitly {@link google.firestore.v1beta1.PartitionQueryResponse.verify|verify} messages. - * @param message PartitionQueryResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IPartitionQueryResponse, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified PartitionQueryResponse message, length delimited. Does not implicitly {@link google.firestore.v1beta1.PartitionQueryResponse.verify|verify} messages. - * @param message PartitionQueryResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IPartitionQueryResponse, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a PartitionQueryResponse message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns PartitionQueryResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.PartitionQueryResponse; - - /** - * Decodes a PartitionQueryResponse message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns PartitionQueryResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.PartitionQueryResponse; - - /** - * Verifies a PartitionQueryResponse message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a PartitionQueryResponse message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns PartitionQueryResponse - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.PartitionQueryResponse; - - /** - * Creates a plain object from a PartitionQueryResponse message. Also converts values to other types if specified. - * @param message PartitionQueryResponse - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.PartitionQueryResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this PartitionQueryResponse to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for PartitionQueryResponse - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a WriteRequest. */ - interface IWriteRequest { - - /** WriteRequest database */ - database?: (string|null); - - /** WriteRequest streamId */ - streamId?: (string|null); - - /** WriteRequest writes */ - writes?: (google.firestore.v1beta1.IWrite[]|null); - - /** WriteRequest streamToken */ - streamToken?: (Uint8Array|Buffer|string|null); - - /** WriteRequest labels */ - labels?: ({ [k: string]: string }|null); - } - - /** Represents a WriteRequest. */ - class WriteRequest implements IWriteRequest { - - /** - * Constructs a new WriteRequest. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IWriteRequest); - - /** WriteRequest database. */ - public database: string; - - /** WriteRequest streamId. */ - public streamId: string; - - /** WriteRequest writes. */ - public writes: google.firestore.v1beta1.IWrite[]; - - /** WriteRequest streamToken. */ - public streamToken: (Uint8Array|Buffer|string); - - /** WriteRequest labels. */ - public labels: { [k: string]: string }; - - /** - * Creates a new WriteRequest instance using the specified properties. - * @param [properties] Properties to set - * @returns WriteRequest instance - */ - public static create(properties?: google.firestore.v1beta1.IWriteRequest): google.firestore.v1beta1.WriteRequest; - - /** - * Encodes the specified WriteRequest message. Does not implicitly {@link google.firestore.v1beta1.WriteRequest.verify|verify} messages. - * @param message WriteRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IWriteRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified WriteRequest message, length delimited. Does not implicitly {@link google.firestore.v1beta1.WriteRequest.verify|verify} messages. - * @param message WriteRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IWriteRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a WriteRequest message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns WriteRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.WriteRequest; - - /** - * Decodes a WriteRequest message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns WriteRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.WriteRequest; - - /** - * Verifies a WriteRequest message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a WriteRequest message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns WriteRequest - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.WriteRequest; - - /** - * Creates a plain object from a WriteRequest message. Also converts values to other types if specified. - * @param message WriteRequest - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.WriteRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this WriteRequest to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for WriteRequest - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a WriteResponse. */ - interface IWriteResponse { - - /** WriteResponse streamId */ - streamId?: (string|null); - - /** WriteResponse streamToken */ - streamToken?: (Uint8Array|Buffer|string|null); - - /** WriteResponse writeResults */ - writeResults?: (google.firestore.v1beta1.IWriteResult[]|null); - - /** WriteResponse commitTime */ - commitTime?: (google.protobuf.ITimestamp|null); - } - - /** Represents a WriteResponse. */ - class WriteResponse implements IWriteResponse { - - /** - * Constructs a new WriteResponse. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IWriteResponse); - - /** WriteResponse streamId. */ - public streamId: string; - - /** WriteResponse streamToken. */ - public streamToken: (Uint8Array|Buffer|string); - - /** WriteResponse writeResults. */ - public writeResults: google.firestore.v1beta1.IWriteResult[]; - - /** WriteResponse commitTime. */ - public commitTime?: (google.protobuf.ITimestamp|null); - - /** - * Creates a new WriteResponse instance using the specified properties. - * @param [properties] Properties to set - * @returns WriteResponse instance - */ - public static create(properties?: google.firestore.v1beta1.IWriteResponse): google.firestore.v1beta1.WriteResponse; - - /** - * Encodes the specified WriteResponse message. Does not implicitly {@link google.firestore.v1beta1.WriteResponse.verify|verify} messages. - * @param message WriteResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IWriteResponse, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified WriteResponse message, length delimited. Does not implicitly {@link google.firestore.v1beta1.WriteResponse.verify|verify} messages. - * @param message WriteResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IWriteResponse, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a WriteResponse message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns WriteResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.WriteResponse; - - /** - * Decodes a WriteResponse message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns WriteResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.WriteResponse; - - /** - * Verifies a WriteResponse message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a WriteResponse message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns WriteResponse - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.WriteResponse; - - /** - * Creates a plain object from a WriteResponse message. Also converts values to other types if specified. - * @param message WriteResponse - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.WriteResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this WriteResponse to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for WriteResponse - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a ListenRequest. */ - interface IListenRequest { - - /** ListenRequest database */ - database?: (string|null); - - /** ListenRequest addTarget */ - addTarget?: (google.firestore.v1beta1.ITarget|null); - - /** ListenRequest removeTarget */ - removeTarget?: (number|null); - - /** ListenRequest labels */ - labels?: ({ [k: string]: string }|null); - } - - /** Represents a ListenRequest. */ - class ListenRequest implements IListenRequest { - - /** - * Constructs a new ListenRequest. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IListenRequest); - - /** ListenRequest database. */ - public database: string; - - /** ListenRequest addTarget. */ - public addTarget?: (google.firestore.v1beta1.ITarget|null); - - /** ListenRequest removeTarget. */ - public removeTarget?: (number|null); - - /** ListenRequest labels. */ - public labels: { [k: string]: string }; - - /** ListenRequest targetChange. */ - public targetChange?: ("addTarget"|"removeTarget"); - - /** - * Creates a new ListenRequest instance using the specified properties. - * @param [properties] Properties to set - * @returns ListenRequest instance - */ - public static create(properties?: google.firestore.v1beta1.IListenRequest): google.firestore.v1beta1.ListenRequest; - - /** - * Encodes the specified ListenRequest message. Does not implicitly {@link google.firestore.v1beta1.ListenRequest.verify|verify} messages. - * @param message ListenRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IListenRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified ListenRequest message, length delimited. Does not implicitly {@link google.firestore.v1beta1.ListenRequest.verify|verify} messages. - * @param message ListenRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IListenRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a ListenRequest message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns ListenRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.ListenRequest; - - /** - * Decodes a ListenRequest message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns ListenRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.ListenRequest; - - /** - * Verifies a ListenRequest message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a ListenRequest message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns ListenRequest - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.ListenRequest; - - /** - * Creates a plain object from a ListenRequest message. Also converts values to other types if specified. - * @param message ListenRequest - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.ListenRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this ListenRequest to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for ListenRequest - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a ListenResponse. */ - interface IListenResponse { - - /** ListenResponse targetChange */ - targetChange?: (google.firestore.v1beta1.ITargetChange|null); - - /** ListenResponse documentChange */ - documentChange?: (google.firestore.v1beta1.IDocumentChange|null); - - /** ListenResponse documentDelete */ - documentDelete?: (google.firestore.v1beta1.IDocumentDelete|null); - - /** ListenResponse documentRemove */ - documentRemove?: (google.firestore.v1beta1.IDocumentRemove|null); - - /** ListenResponse filter */ - filter?: (google.firestore.v1beta1.IExistenceFilter|null); - } - - /** Represents a ListenResponse. */ - class ListenResponse implements IListenResponse { - - /** - * Constructs a new ListenResponse. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IListenResponse); - - /** ListenResponse targetChange. */ - public targetChange?: (google.firestore.v1beta1.ITargetChange|null); - - /** ListenResponse documentChange. */ - public documentChange?: (google.firestore.v1beta1.IDocumentChange|null); - - /** ListenResponse documentDelete. */ - public documentDelete?: (google.firestore.v1beta1.IDocumentDelete|null); - - /** ListenResponse documentRemove. */ - public documentRemove?: (google.firestore.v1beta1.IDocumentRemove|null); - - /** ListenResponse filter. */ - public filter?: (google.firestore.v1beta1.IExistenceFilter|null); - - /** ListenResponse responseType. */ - public responseType?: ("targetChange"|"documentChange"|"documentDelete"|"documentRemove"|"filter"); - - /** - * Creates a new ListenResponse instance using the specified properties. - * @param [properties] Properties to set - * @returns ListenResponse instance - */ - public static create(properties?: google.firestore.v1beta1.IListenResponse): google.firestore.v1beta1.ListenResponse; - - /** - * Encodes the specified ListenResponse message. Does not implicitly {@link google.firestore.v1beta1.ListenResponse.verify|verify} messages. - * @param message ListenResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IListenResponse, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified ListenResponse message, length delimited. Does not implicitly {@link google.firestore.v1beta1.ListenResponse.verify|verify} messages. - * @param message ListenResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IListenResponse, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a ListenResponse message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns ListenResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.ListenResponse; - - /** - * Decodes a ListenResponse message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns ListenResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.ListenResponse; - - /** - * Verifies a ListenResponse message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a ListenResponse message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns ListenResponse - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.ListenResponse; - - /** - * Creates a plain object from a ListenResponse message. Also converts values to other types if specified. - * @param message ListenResponse - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.ListenResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this ListenResponse to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for ListenResponse - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a Target. */ - interface ITarget { - - /** Target query */ - query?: (google.firestore.v1beta1.Target.IQueryTarget|null); - - /** Target documents */ - documents?: (google.firestore.v1beta1.Target.IDocumentsTarget|null); - - /** Target resumeToken */ - resumeToken?: (Uint8Array|Buffer|string|null); - - /** Target readTime */ - readTime?: (google.protobuf.ITimestamp|null); - - /** Target targetId */ - targetId?: (number|null); - - /** Target once */ - once?: (boolean|null); - } - - /** Represents a Target. */ - class Target implements ITarget { - - /** - * Constructs a new Target. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.ITarget); - - /** Target query. */ - public query?: (google.firestore.v1beta1.Target.IQueryTarget|null); - - /** Target documents. */ - public documents?: (google.firestore.v1beta1.Target.IDocumentsTarget|null); - - /** Target resumeToken. */ - public resumeToken?: (Uint8Array|Buffer|string|null); - - /** Target readTime. */ - public readTime?: (google.protobuf.ITimestamp|null); - - /** Target targetId. */ - public targetId: number; - - /** Target once. */ - public once: boolean; - - /** Target targetType. */ - public targetType?: ("query"|"documents"); - - /** Target resumeType. */ - public resumeType?: ("resumeToken"|"readTime"); - - /** - * Creates a new Target instance using the specified properties. - * @param [properties] Properties to set - * @returns Target instance - */ - public static create(properties?: google.firestore.v1beta1.ITarget): google.firestore.v1beta1.Target; - - /** - * Encodes the specified Target message. Does not implicitly {@link google.firestore.v1beta1.Target.verify|verify} messages. - * @param message Target message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.ITarget, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified Target message, length delimited. Does not implicitly {@link google.firestore.v1beta1.Target.verify|verify} messages. - * @param message Target message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.ITarget, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a Target message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns Target - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.Target; - - /** - * Decodes a Target message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns Target - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.Target; - - /** - * Verifies a Target message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a Target message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns Target - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.Target; - - /** - * Creates a plain object from a Target message. Also converts values to other types if specified. - * @param message Target - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.Target, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this Target to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for Target - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - namespace Target { - - /** Properties of a DocumentsTarget. */ - interface IDocumentsTarget { - - /** DocumentsTarget documents */ - documents?: (string[]|null); - } - - /** Represents a DocumentsTarget. */ - class DocumentsTarget implements IDocumentsTarget { - - /** - * Constructs a new DocumentsTarget. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.Target.IDocumentsTarget); - - /** DocumentsTarget documents. */ - public documents: string[]; - - /** - * Creates a new DocumentsTarget instance using the specified properties. - * @param [properties] Properties to set - * @returns DocumentsTarget instance - */ - public static create(properties?: google.firestore.v1beta1.Target.IDocumentsTarget): google.firestore.v1beta1.Target.DocumentsTarget; - - /** - * Encodes the specified DocumentsTarget message. Does not implicitly {@link google.firestore.v1beta1.Target.DocumentsTarget.verify|verify} messages. - * @param message DocumentsTarget message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.Target.IDocumentsTarget, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified DocumentsTarget message, length delimited. Does not implicitly {@link google.firestore.v1beta1.Target.DocumentsTarget.verify|verify} messages. - * @param message DocumentsTarget message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.Target.IDocumentsTarget, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a DocumentsTarget message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns DocumentsTarget - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.Target.DocumentsTarget; - - /** - * Decodes a DocumentsTarget message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns DocumentsTarget - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.Target.DocumentsTarget; - - /** - * Verifies a DocumentsTarget message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a DocumentsTarget message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns DocumentsTarget - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.Target.DocumentsTarget; - - /** - * Creates a plain object from a DocumentsTarget message. Also converts values to other types if specified. - * @param message DocumentsTarget - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.Target.DocumentsTarget, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this DocumentsTarget to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for DocumentsTarget - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a QueryTarget. */ - interface IQueryTarget { - - /** QueryTarget parent */ - parent?: (string|null); - - /** QueryTarget structuredQuery */ - structuredQuery?: (google.firestore.v1beta1.IStructuredQuery|null); - } - - /** Represents a QueryTarget. */ - class QueryTarget implements IQueryTarget { - - /** - * Constructs a new QueryTarget. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.Target.IQueryTarget); - - /** QueryTarget parent. */ - public parent: string; - - /** QueryTarget structuredQuery. */ - public structuredQuery?: (google.firestore.v1beta1.IStructuredQuery|null); - - /** QueryTarget queryType. */ - public queryType?: "structuredQuery"; - - /** - * Creates a new QueryTarget instance using the specified properties. - * @param [properties] Properties to set - * @returns QueryTarget instance - */ - public static create(properties?: google.firestore.v1beta1.Target.IQueryTarget): google.firestore.v1beta1.Target.QueryTarget; - - /** - * Encodes the specified QueryTarget message. Does not implicitly {@link google.firestore.v1beta1.Target.QueryTarget.verify|verify} messages. - * @param message QueryTarget message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.Target.IQueryTarget, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified QueryTarget message, length delimited. Does not implicitly {@link google.firestore.v1beta1.Target.QueryTarget.verify|verify} messages. - * @param message QueryTarget message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.Target.IQueryTarget, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a QueryTarget message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns QueryTarget - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.Target.QueryTarget; - - /** - * Decodes a QueryTarget message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns QueryTarget - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.Target.QueryTarget; - - /** - * Verifies a QueryTarget message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a QueryTarget message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns QueryTarget - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.Target.QueryTarget; - - /** - * Creates a plain object from a QueryTarget message. Also converts values to other types if specified. - * @param message QueryTarget - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.Target.QueryTarget, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this QueryTarget to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for QueryTarget - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - } - - /** Properties of a TargetChange. */ - interface ITargetChange { - - /** TargetChange targetChangeType */ - targetChangeType?: (google.firestore.v1beta1.TargetChange.TargetChangeType|keyof typeof google.firestore.v1beta1.TargetChange.TargetChangeType|null); - - /** TargetChange targetIds */ - targetIds?: (number[]|null); - - /** TargetChange cause */ - cause?: (google.rpc.IStatus|null); - - /** TargetChange resumeToken */ - resumeToken?: (Uint8Array|Buffer|string|null); - - /** TargetChange readTime */ - readTime?: (google.protobuf.ITimestamp|null); - } - - /** Represents a TargetChange. */ - class TargetChange implements ITargetChange { - - /** - * Constructs a new TargetChange. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.ITargetChange); - - /** TargetChange targetChangeType. */ - public targetChangeType: (google.firestore.v1beta1.TargetChange.TargetChangeType|keyof typeof google.firestore.v1beta1.TargetChange.TargetChangeType); - - /** TargetChange targetIds. */ - public targetIds: number[]; - - /** TargetChange cause. */ - public cause?: (google.rpc.IStatus|null); - - /** TargetChange resumeToken. */ - public resumeToken: (Uint8Array|Buffer|string); - - /** TargetChange readTime. */ - public readTime?: (google.protobuf.ITimestamp|null); - - /** - * Creates a new TargetChange instance using the specified properties. - * @param [properties] Properties to set - * @returns TargetChange instance - */ - public static create(properties?: google.firestore.v1beta1.ITargetChange): google.firestore.v1beta1.TargetChange; - - /** - * Encodes the specified TargetChange message. Does not implicitly {@link google.firestore.v1beta1.TargetChange.verify|verify} messages. - * @param message TargetChange message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.ITargetChange, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified TargetChange message, length delimited. Does not implicitly {@link google.firestore.v1beta1.TargetChange.verify|verify} messages. - * @param message TargetChange message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.ITargetChange, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a TargetChange message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns TargetChange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.TargetChange; - - /** - * Decodes a TargetChange message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns TargetChange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.TargetChange; - - /** - * Verifies a TargetChange message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a TargetChange message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns TargetChange - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.TargetChange; - - /** - * Creates a plain object from a TargetChange message. Also converts values to other types if specified. - * @param message TargetChange - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.TargetChange, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this TargetChange to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for TargetChange - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - namespace TargetChange { - - /** TargetChangeType enum. */ - enum TargetChangeType { - NO_CHANGE = 0, - ADD = 1, - REMOVE = 2, - CURRENT = 3, - RESET = 4 - } - } - - /** Properties of a ListCollectionIdsRequest. */ - interface IListCollectionIdsRequest { - - /** ListCollectionIdsRequest parent */ - parent?: (string|null); - - /** ListCollectionIdsRequest pageSize */ - pageSize?: (number|null); - - /** ListCollectionIdsRequest pageToken */ - pageToken?: (string|null); - } - - /** Represents a ListCollectionIdsRequest. */ - class ListCollectionIdsRequest implements IListCollectionIdsRequest { - - /** - * Constructs a new ListCollectionIdsRequest. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IListCollectionIdsRequest); - - /** ListCollectionIdsRequest parent. */ - public parent: string; - - /** ListCollectionIdsRequest pageSize. */ - public pageSize: number; - - /** ListCollectionIdsRequest pageToken. */ - public pageToken: string; - - /** - * Creates a new ListCollectionIdsRequest instance using the specified properties. - * @param [properties] Properties to set - * @returns ListCollectionIdsRequest instance - */ - public static create(properties?: google.firestore.v1beta1.IListCollectionIdsRequest): google.firestore.v1beta1.ListCollectionIdsRequest; - - /** - * Encodes the specified ListCollectionIdsRequest message. Does not implicitly {@link google.firestore.v1beta1.ListCollectionIdsRequest.verify|verify} messages. - * @param message ListCollectionIdsRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IListCollectionIdsRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified ListCollectionIdsRequest message, length delimited. Does not implicitly {@link google.firestore.v1beta1.ListCollectionIdsRequest.verify|verify} messages. - * @param message ListCollectionIdsRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IListCollectionIdsRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a ListCollectionIdsRequest message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns ListCollectionIdsRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.ListCollectionIdsRequest; - - /** - * Decodes a ListCollectionIdsRequest message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns ListCollectionIdsRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.ListCollectionIdsRequest; - - /** - * Verifies a ListCollectionIdsRequest message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a ListCollectionIdsRequest message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns ListCollectionIdsRequest - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.ListCollectionIdsRequest; - - /** - * Creates a plain object from a ListCollectionIdsRequest message. Also converts values to other types if specified. - * @param message ListCollectionIdsRequest - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.ListCollectionIdsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this ListCollectionIdsRequest to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for ListCollectionIdsRequest - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a ListCollectionIdsResponse. */ - interface IListCollectionIdsResponse { - - /** ListCollectionIdsResponse collectionIds */ - collectionIds?: (string[]|null); - - /** ListCollectionIdsResponse nextPageToken */ - nextPageToken?: (string|null); - } - - /** Represents a ListCollectionIdsResponse. */ - class ListCollectionIdsResponse implements IListCollectionIdsResponse { - - /** - * Constructs a new ListCollectionIdsResponse. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IListCollectionIdsResponse); - - /** ListCollectionIdsResponse collectionIds. */ - public collectionIds: string[]; - - /** ListCollectionIdsResponse nextPageToken. */ - public nextPageToken: string; - - /** - * Creates a new ListCollectionIdsResponse instance using the specified properties. - * @param [properties] Properties to set - * @returns ListCollectionIdsResponse instance - */ - public static create(properties?: google.firestore.v1beta1.IListCollectionIdsResponse): google.firestore.v1beta1.ListCollectionIdsResponse; - - /** - * Encodes the specified ListCollectionIdsResponse message. Does not implicitly {@link google.firestore.v1beta1.ListCollectionIdsResponse.verify|verify} messages. - * @param message ListCollectionIdsResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IListCollectionIdsResponse, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified ListCollectionIdsResponse message, length delimited. Does not implicitly {@link google.firestore.v1beta1.ListCollectionIdsResponse.verify|verify} messages. - * @param message ListCollectionIdsResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IListCollectionIdsResponse, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a ListCollectionIdsResponse message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns ListCollectionIdsResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.ListCollectionIdsResponse; - - /** - * Decodes a ListCollectionIdsResponse message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns ListCollectionIdsResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.ListCollectionIdsResponse; - - /** - * Verifies a ListCollectionIdsResponse message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a ListCollectionIdsResponse message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns ListCollectionIdsResponse - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.ListCollectionIdsResponse; - - /** - * Creates a plain object from a ListCollectionIdsResponse message. Also converts values to other types if specified. - * @param message ListCollectionIdsResponse - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.ListCollectionIdsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this ListCollectionIdsResponse to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for ListCollectionIdsResponse - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a BatchWriteRequest. */ - interface IBatchWriteRequest { - - /** BatchWriteRequest database */ - database?: (string|null); - - /** BatchWriteRequest writes */ - writes?: (google.firestore.v1beta1.IWrite[]|null); - - /** BatchWriteRequest labels */ - labels?: ({ [k: string]: string }|null); - } - - /** Represents a BatchWriteRequest. */ - class BatchWriteRequest implements IBatchWriteRequest { - - /** - * Constructs a new BatchWriteRequest. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IBatchWriteRequest); - - /** BatchWriteRequest database. */ - public database: string; - - /** BatchWriteRequest writes. */ - public writes: google.firestore.v1beta1.IWrite[]; - - /** BatchWriteRequest labels. */ - public labels: { [k: string]: string }; - - /** - * Creates a new BatchWriteRequest instance using the specified properties. - * @param [properties] Properties to set - * @returns BatchWriteRequest instance - */ - public static create(properties?: google.firestore.v1beta1.IBatchWriteRequest): google.firestore.v1beta1.BatchWriteRequest; - - /** - * Encodes the specified BatchWriteRequest message. Does not implicitly {@link google.firestore.v1beta1.BatchWriteRequest.verify|verify} messages. - * @param message BatchWriteRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IBatchWriteRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified BatchWriteRequest message, length delimited. Does not implicitly {@link google.firestore.v1beta1.BatchWriteRequest.verify|verify} messages. - * @param message BatchWriteRequest message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IBatchWriteRequest, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a BatchWriteRequest message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns BatchWriteRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.BatchWriteRequest; - - /** - * Decodes a BatchWriteRequest message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns BatchWriteRequest - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.BatchWriteRequest; - - /** - * Verifies a BatchWriteRequest message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a BatchWriteRequest message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns BatchWriteRequest - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.BatchWriteRequest; - - /** - * Creates a plain object from a BatchWriteRequest message. Also converts values to other types if specified. - * @param message BatchWriteRequest - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.BatchWriteRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this BatchWriteRequest to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for BatchWriteRequest - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a BatchWriteResponse. */ - interface IBatchWriteResponse { - - /** BatchWriteResponse writeResults */ - writeResults?: (google.firestore.v1beta1.IWriteResult[]|null); - - /** BatchWriteResponse status */ - status?: (google.rpc.IStatus[]|null); - } - - /** Represents a BatchWriteResponse. */ - class BatchWriteResponse implements IBatchWriteResponse { - - /** - * Constructs a new BatchWriteResponse. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IBatchWriteResponse); - - /** BatchWriteResponse writeResults. */ - public writeResults: google.firestore.v1beta1.IWriteResult[]; - - /** BatchWriteResponse status. */ - public status: google.rpc.IStatus[]; - - /** - * Creates a new BatchWriteResponse instance using the specified properties. - * @param [properties] Properties to set - * @returns BatchWriteResponse instance - */ - public static create(properties?: google.firestore.v1beta1.IBatchWriteResponse): google.firestore.v1beta1.BatchWriteResponse; - - /** - * Encodes the specified BatchWriteResponse message. Does not implicitly {@link google.firestore.v1beta1.BatchWriteResponse.verify|verify} messages. - * @param message BatchWriteResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IBatchWriteResponse, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified BatchWriteResponse message, length delimited. Does not implicitly {@link google.firestore.v1beta1.BatchWriteResponse.verify|verify} messages. - * @param message BatchWriteResponse message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IBatchWriteResponse, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a BatchWriteResponse message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns BatchWriteResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.BatchWriteResponse; - - /** - * Decodes a BatchWriteResponse message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns BatchWriteResponse - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.BatchWriteResponse; - - /** - * Verifies a BatchWriteResponse message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a BatchWriteResponse message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns BatchWriteResponse - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.BatchWriteResponse; - - /** - * Creates a plain object from a BatchWriteResponse message. Also converts values to other types if specified. - * @param message BatchWriteResponse - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.BatchWriteResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this BatchWriteResponse to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for BatchWriteResponse - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a StructuredQuery. */ - interface IStructuredQuery { - - /** StructuredQuery select */ - select?: (google.firestore.v1beta1.StructuredQuery.IProjection|null); - - /** StructuredQuery from */ - from?: (google.firestore.v1beta1.StructuredQuery.ICollectionSelector[]|null); - - /** StructuredQuery where */ - where?: (google.firestore.v1beta1.StructuredQuery.IFilter|null); - - /** StructuredQuery orderBy */ - orderBy?: (google.firestore.v1beta1.StructuredQuery.IOrder[]|null); - - /** StructuredQuery startAt */ - startAt?: (google.firestore.v1beta1.ICursor|null); - - /** StructuredQuery endAt */ - endAt?: (google.firestore.v1beta1.ICursor|null); - - /** StructuredQuery offset */ - offset?: (number|null); - - /** StructuredQuery limit */ - limit?: (google.protobuf.IInt32Value|null); - } - - /** Represents a StructuredQuery. */ - class StructuredQuery implements IStructuredQuery { - - /** - * Constructs a new StructuredQuery. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IStructuredQuery); - - /** StructuredQuery select. */ - public select?: (google.firestore.v1beta1.StructuredQuery.IProjection|null); - - /** StructuredQuery from. */ - public from: google.firestore.v1beta1.StructuredQuery.ICollectionSelector[]; - - /** StructuredQuery where. */ - public where?: (google.firestore.v1beta1.StructuredQuery.IFilter|null); - - /** StructuredQuery orderBy. */ - public orderBy: google.firestore.v1beta1.StructuredQuery.IOrder[]; - - /** StructuredQuery startAt. */ - public startAt?: (google.firestore.v1beta1.ICursor|null); - - /** StructuredQuery endAt. */ - public endAt?: (google.firestore.v1beta1.ICursor|null); - - /** StructuredQuery offset. */ - public offset: number; - - /** StructuredQuery limit. */ - public limit?: (google.protobuf.IInt32Value|null); - - /** - * Creates a new StructuredQuery instance using the specified properties. - * @param [properties] Properties to set - * @returns StructuredQuery instance - */ - public static create(properties?: google.firestore.v1beta1.IStructuredQuery): google.firestore.v1beta1.StructuredQuery; - - /** - * Encodes the specified StructuredQuery message. Does not implicitly {@link google.firestore.v1beta1.StructuredQuery.verify|verify} messages. - * @param message StructuredQuery message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IStructuredQuery, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified StructuredQuery message, length delimited. Does not implicitly {@link google.firestore.v1beta1.StructuredQuery.verify|verify} messages. - * @param message StructuredQuery message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IStructuredQuery, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a StructuredQuery message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns StructuredQuery - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.StructuredQuery; - - /** - * Decodes a StructuredQuery message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns StructuredQuery - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.StructuredQuery; - - /** - * Verifies a StructuredQuery message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a StructuredQuery message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns StructuredQuery - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.StructuredQuery; - - /** - * Creates a plain object from a StructuredQuery message. Also converts values to other types if specified. - * @param message StructuredQuery - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.StructuredQuery, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this StructuredQuery to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for StructuredQuery - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - namespace StructuredQuery { - - /** Properties of a CollectionSelector. */ - interface ICollectionSelector { - - /** CollectionSelector collectionId */ - collectionId?: (string|null); - - /** CollectionSelector allDescendants */ - allDescendants?: (boolean|null); - } - - /** Represents a CollectionSelector. */ - class CollectionSelector implements ICollectionSelector { - - /** - * Constructs a new CollectionSelector. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.StructuredQuery.ICollectionSelector); - - /** CollectionSelector collectionId. */ - public collectionId: string; - - /** CollectionSelector allDescendants. */ - public allDescendants: boolean; - - /** - * Creates a new CollectionSelector instance using the specified properties. - * @param [properties] Properties to set - * @returns CollectionSelector instance - */ - public static create(properties?: google.firestore.v1beta1.StructuredQuery.ICollectionSelector): google.firestore.v1beta1.StructuredQuery.CollectionSelector; - - /** - * Encodes the specified CollectionSelector message. Does not implicitly {@link google.firestore.v1beta1.StructuredQuery.CollectionSelector.verify|verify} messages. - * @param message CollectionSelector message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.StructuredQuery.ICollectionSelector, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified CollectionSelector message, length delimited. Does not implicitly {@link google.firestore.v1beta1.StructuredQuery.CollectionSelector.verify|verify} messages. - * @param message CollectionSelector message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.StructuredQuery.ICollectionSelector, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a CollectionSelector message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns CollectionSelector - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.StructuredQuery.CollectionSelector; - - /** - * Decodes a CollectionSelector message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns CollectionSelector - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.StructuredQuery.CollectionSelector; - - /** - * Verifies a CollectionSelector message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a CollectionSelector message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns CollectionSelector - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.StructuredQuery.CollectionSelector; - - /** - * Creates a plain object from a CollectionSelector message. Also converts values to other types if specified. - * @param message CollectionSelector - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.StructuredQuery.CollectionSelector, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this CollectionSelector to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for CollectionSelector - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a Filter. */ - interface IFilter { - - /** Filter compositeFilter */ - compositeFilter?: (google.firestore.v1beta1.StructuredQuery.ICompositeFilter|null); - - /** Filter fieldFilter */ - fieldFilter?: (google.firestore.v1beta1.StructuredQuery.IFieldFilter|null); - - /** Filter unaryFilter */ - unaryFilter?: (google.firestore.v1beta1.StructuredQuery.IUnaryFilter|null); - } - - /** Represents a Filter. */ - class Filter implements IFilter { - - /** - * Constructs a new Filter. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.StructuredQuery.IFilter); - - /** Filter compositeFilter. */ - public compositeFilter?: (google.firestore.v1beta1.StructuredQuery.ICompositeFilter|null); - - /** Filter fieldFilter. */ - public fieldFilter?: (google.firestore.v1beta1.StructuredQuery.IFieldFilter|null); - - /** Filter unaryFilter. */ - public unaryFilter?: (google.firestore.v1beta1.StructuredQuery.IUnaryFilter|null); - - /** Filter filterType. */ - public filterType?: ("compositeFilter"|"fieldFilter"|"unaryFilter"); - - /** - * Creates a new Filter instance using the specified properties. - * @param [properties] Properties to set - * @returns Filter instance - */ - public static create(properties?: google.firestore.v1beta1.StructuredQuery.IFilter): google.firestore.v1beta1.StructuredQuery.Filter; - - /** - * Encodes the specified Filter message. Does not implicitly {@link google.firestore.v1beta1.StructuredQuery.Filter.verify|verify} messages. - * @param message Filter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.StructuredQuery.IFilter, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified Filter message, length delimited. Does not implicitly {@link google.firestore.v1beta1.StructuredQuery.Filter.verify|verify} messages. - * @param message Filter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.StructuredQuery.IFilter, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a Filter message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns Filter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.StructuredQuery.Filter; - - /** - * Decodes a Filter message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns Filter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.StructuredQuery.Filter; - - /** - * Verifies a Filter message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a Filter message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns Filter - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.StructuredQuery.Filter; - - /** - * Creates a plain object from a Filter message. Also converts values to other types if specified. - * @param message Filter - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.StructuredQuery.Filter, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this Filter to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for Filter - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a CompositeFilter. */ - interface ICompositeFilter { - - /** CompositeFilter op */ - op?: (google.firestore.v1beta1.StructuredQuery.CompositeFilter.Operator|keyof typeof google.firestore.v1beta1.StructuredQuery.CompositeFilter.Operator|null); - - /** CompositeFilter filters */ - filters?: (google.firestore.v1beta1.StructuredQuery.IFilter[]|null); - } - - /** Represents a CompositeFilter. */ - class CompositeFilter implements ICompositeFilter { - - /** - * Constructs a new CompositeFilter. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.StructuredQuery.ICompositeFilter); - - /** CompositeFilter op. */ - public op: (google.firestore.v1beta1.StructuredQuery.CompositeFilter.Operator|keyof typeof google.firestore.v1beta1.StructuredQuery.CompositeFilter.Operator); - - /** CompositeFilter filters. */ - public filters: google.firestore.v1beta1.StructuredQuery.IFilter[]; - - /** - * Creates a new CompositeFilter instance using the specified properties. - * @param [properties] Properties to set - * @returns CompositeFilter instance - */ - public static create(properties?: google.firestore.v1beta1.StructuredQuery.ICompositeFilter): google.firestore.v1beta1.StructuredQuery.CompositeFilter; - - /** - * Encodes the specified CompositeFilter message. Does not implicitly {@link google.firestore.v1beta1.StructuredQuery.CompositeFilter.verify|verify} messages. - * @param message CompositeFilter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.StructuredQuery.ICompositeFilter, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified CompositeFilter message, length delimited. Does not implicitly {@link google.firestore.v1beta1.StructuredQuery.CompositeFilter.verify|verify} messages. - * @param message CompositeFilter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.StructuredQuery.ICompositeFilter, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a CompositeFilter message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns CompositeFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.StructuredQuery.CompositeFilter; - - /** - * Decodes a CompositeFilter message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns CompositeFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.StructuredQuery.CompositeFilter; - - /** - * Verifies a CompositeFilter message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a CompositeFilter message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns CompositeFilter - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.StructuredQuery.CompositeFilter; - - /** - * Creates a plain object from a CompositeFilter message. Also converts values to other types if specified. - * @param message CompositeFilter - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.StructuredQuery.CompositeFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this CompositeFilter to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for CompositeFilter - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - namespace CompositeFilter { - - /** Operator enum. */ - enum Operator { - OPERATOR_UNSPECIFIED = 0, - AND = 1 - } - } - - /** Properties of a FieldFilter. */ - interface IFieldFilter { - - /** FieldFilter field */ - field?: (google.firestore.v1beta1.StructuredQuery.IFieldReference|null); - - /** FieldFilter op */ - op?: (google.firestore.v1beta1.StructuredQuery.FieldFilter.Operator|keyof typeof google.firestore.v1beta1.StructuredQuery.FieldFilter.Operator|null); - - /** FieldFilter value */ - value?: (google.firestore.v1beta1.IValue|null); - } - - /** Represents a FieldFilter. */ - class FieldFilter implements IFieldFilter { - - /** - * Constructs a new FieldFilter. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.StructuredQuery.IFieldFilter); - - /** FieldFilter field. */ - public field?: (google.firestore.v1beta1.StructuredQuery.IFieldReference|null); - - /** FieldFilter op. */ - public op: (google.firestore.v1beta1.StructuredQuery.FieldFilter.Operator|keyof typeof google.firestore.v1beta1.StructuredQuery.FieldFilter.Operator); - - /** FieldFilter value. */ - public value?: (google.firestore.v1beta1.IValue|null); - - /** - * Creates a new FieldFilter instance using the specified properties. - * @param [properties] Properties to set - * @returns FieldFilter instance - */ - public static create(properties?: google.firestore.v1beta1.StructuredQuery.IFieldFilter): google.firestore.v1beta1.StructuredQuery.FieldFilter; - - /** - * Encodes the specified FieldFilter message. Does not implicitly {@link google.firestore.v1beta1.StructuredQuery.FieldFilter.verify|verify} messages. - * @param message FieldFilter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.StructuredQuery.IFieldFilter, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified FieldFilter message, length delimited. Does not implicitly {@link google.firestore.v1beta1.StructuredQuery.FieldFilter.verify|verify} messages. - * @param message FieldFilter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.StructuredQuery.IFieldFilter, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a FieldFilter message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns FieldFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.StructuredQuery.FieldFilter; - - /** - * Decodes a FieldFilter message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns FieldFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.StructuredQuery.FieldFilter; - - /** - * Verifies a FieldFilter message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a FieldFilter message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns FieldFilter - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.StructuredQuery.FieldFilter; - - /** - * Creates a plain object from a FieldFilter message. Also converts values to other types if specified. - * @param message FieldFilter - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.StructuredQuery.FieldFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this FieldFilter to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for FieldFilter - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - namespace FieldFilter { - - /** Operator enum. */ - enum Operator { - OPERATOR_UNSPECIFIED = 0, - LESS_THAN = 1, - LESS_THAN_OR_EQUAL = 2, - GREATER_THAN = 3, - GREATER_THAN_OR_EQUAL = 4, - EQUAL = 5, - NOT_EQUAL = 6, - ARRAY_CONTAINS = 7, - IN = 8, - ARRAY_CONTAINS_ANY = 9, - NOT_IN = 10 - } - } - - /** Properties of an UnaryFilter. */ - interface IUnaryFilter { - - /** UnaryFilter op */ - op?: (google.firestore.v1beta1.StructuredQuery.UnaryFilter.Operator|keyof typeof google.firestore.v1beta1.StructuredQuery.UnaryFilter.Operator|null); - - /** UnaryFilter field */ - field?: (google.firestore.v1beta1.StructuredQuery.IFieldReference|null); - } - - /** Represents an UnaryFilter. */ - class UnaryFilter implements IUnaryFilter { - - /** - * Constructs a new UnaryFilter. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.StructuredQuery.IUnaryFilter); - - /** UnaryFilter op. */ - public op: (google.firestore.v1beta1.StructuredQuery.UnaryFilter.Operator|keyof typeof google.firestore.v1beta1.StructuredQuery.UnaryFilter.Operator); - - /** UnaryFilter field. */ - public field?: (google.firestore.v1beta1.StructuredQuery.IFieldReference|null); - - /** UnaryFilter operandType. */ - public operandType?: "field"; - - /** - * Creates a new UnaryFilter instance using the specified properties. - * @param [properties] Properties to set - * @returns UnaryFilter instance - */ - public static create(properties?: google.firestore.v1beta1.StructuredQuery.IUnaryFilter): google.firestore.v1beta1.StructuredQuery.UnaryFilter; - - /** - * Encodes the specified UnaryFilter message. Does not implicitly {@link google.firestore.v1beta1.StructuredQuery.UnaryFilter.verify|verify} messages. - * @param message UnaryFilter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.StructuredQuery.IUnaryFilter, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified UnaryFilter message, length delimited. Does not implicitly {@link google.firestore.v1beta1.StructuredQuery.UnaryFilter.verify|verify} messages. - * @param message UnaryFilter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.StructuredQuery.IUnaryFilter, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes an UnaryFilter message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns UnaryFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.StructuredQuery.UnaryFilter; - - /** - * Decodes an UnaryFilter message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns UnaryFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.StructuredQuery.UnaryFilter; - - /** - * Verifies an UnaryFilter message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates an UnaryFilter message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns UnaryFilter - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.StructuredQuery.UnaryFilter; - - /** - * Creates a plain object from an UnaryFilter message. Also converts values to other types if specified. - * @param message UnaryFilter - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.StructuredQuery.UnaryFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this UnaryFilter to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for UnaryFilter - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - namespace UnaryFilter { - - /** Operator enum. */ - enum Operator { - OPERATOR_UNSPECIFIED = 0, - IS_NAN = 2, - IS_NULL = 3, - IS_NOT_NAN = 4, - IS_NOT_NULL = 5 - } - } - - /** Properties of a FieldReference. */ - interface IFieldReference { - - /** FieldReference fieldPath */ - fieldPath?: (string|null); - } - - /** Represents a FieldReference. */ - class FieldReference implements IFieldReference { - - /** - * Constructs a new FieldReference. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.StructuredQuery.IFieldReference); - - /** FieldReference fieldPath. */ - public fieldPath: string; - - /** - * Creates a new FieldReference instance using the specified properties. - * @param [properties] Properties to set - * @returns FieldReference instance - */ - public static create(properties?: google.firestore.v1beta1.StructuredQuery.IFieldReference): google.firestore.v1beta1.StructuredQuery.FieldReference; - - /** - * Encodes the specified FieldReference message. Does not implicitly {@link google.firestore.v1beta1.StructuredQuery.FieldReference.verify|verify} messages. - * @param message FieldReference message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.StructuredQuery.IFieldReference, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified FieldReference message, length delimited. Does not implicitly {@link google.firestore.v1beta1.StructuredQuery.FieldReference.verify|verify} messages. - * @param message FieldReference message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.StructuredQuery.IFieldReference, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a FieldReference message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns FieldReference - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.StructuredQuery.FieldReference; - - /** - * Decodes a FieldReference message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns FieldReference - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.StructuredQuery.FieldReference; - - /** - * Verifies a FieldReference message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a FieldReference message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns FieldReference - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.StructuredQuery.FieldReference; - - /** - * Creates a plain object from a FieldReference message. Also converts values to other types if specified. - * @param message FieldReference - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.StructuredQuery.FieldReference, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this FieldReference to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for FieldReference - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of an Order. */ - interface IOrder { - - /** Order field */ - field?: (google.firestore.v1beta1.StructuredQuery.IFieldReference|null); - - /** Order direction */ - direction?: (google.firestore.v1beta1.StructuredQuery.Direction|keyof typeof google.firestore.v1beta1.StructuredQuery.Direction|null); - } - - /** Represents an Order. */ - class Order implements IOrder { - - /** - * Constructs a new Order. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.StructuredQuery.IOrder); - - /** Order field. */ - public field?: (google.firestore.v1beta1.StructuredQuery.IFieldReference|null); - - /** Order direction. */ - public direction: (google.firestore.v1beta1.StructuredQuery.Direction|keyof typeof google.firestore.v1beta1.StructuredQuery.Direction); - - /** - * Creates a new Order instance using the specified properties. - * @param [properties] Properties to set - * @returns Order instance - */ - public static create(properties?: google.firestore.v1beta1.StructuredQuery.IOrder): google.firestore.v1beta1.StructuredQuery.Order; - - /** - * Encodes the specified Order message. Does not implicitly {@link google.firestore.v1beta1.StructuredQuery.Order.verify|verify} messages. - * @param message Order message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.StructuredQuery.IOrder, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified Order message, length delimited. Does not implicitly {@link google.firestore.v1beta1.StructuredQuery.Order.verify|verify} messages. - * @param message Order message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.StructuredQuery.IOrder, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes an Order message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns Order - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.StructuredQuery.Order; - - /** - * Decodes an Order message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns Order - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.StructuredQuery.Order; - - /** - * Verifies an Order message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates an Order message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns Order - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.StructuredQuery.Order; - - /** - * Creates a plain object from an Order message. Also converts values to other types if specified. - * @param message Order - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.StructuredQuery.Order, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this Order to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for Order - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a Projection. */ - interface IProjection { - - /** Projection fields */ - fields?: (google.firestore.v1beta1.StructuredQuery.IFieldReference[]|null); - } - - /** Represents a Projection. */ - class Projection implements IProjection { - - /** - * Constructs a new Projection. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.StructuredQuery.IProjection); - - /** Projection fields. */ - public fields: google.firestore.v1beta1.StructuredQuery.IFieldReference[]; - - /** - * Creates a new Projection instance using the specified properties. - * @param [properties] Properties to set - * @returns Projection instance - */ - public static create(properties?: google.firestore.v1beta1.StructuredQuery.IProjection): google.firestore.v1beta1.StructuredQuery.Projection; - - /** - * Encodes the specified Projection message. Does not implicitly {@link google.firestore.v1beta1.StructuredQuery.Projection.verify|verify} messages. - * @param message Projection message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.StructuredQuery.IProjection, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified Projection message, length delimited. Does not implicitly {@link google.firestore.v1beta1.StructuredQuery.Projection.verify|verify} messages. - * @param message Projection message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.StructuredQuery.IProjection, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a Projection message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns Projection - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.StructuredQuery.Projection; - - /** - * Decodes a Projection message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns Projection - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.StructuredQuery.Projection; - - /** - * Verifies a Projection message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a Projection message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns Projection - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.StructuredQuery.Projection; - - /** - * Creates a plain object from a Projection message. Also converts values to other types if specified. - * @param message Projection - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.StructuredQuery.Projection, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this Projection to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for Projection - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Direction enum. */ - enum Direction { - DIRECTION_UNSPECIFIED = 0, - ASCENDING = 1, - DESCENDING = 2 - } - } - - /** Properties of a Cursor. */ - interface ICursor { - - /** Cursor values */ - values?: (google.firestore.v1beta1.IValue[]|null); - - /** Cursor before */ - before?: (boolean|null); - } - - /** Represents a Cursor. */ - class Cursor implements ICursor { - - /** - * Constructs a new Cursor. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.ICursor); - - /** Cursor values. */ - public values: google.firestore.v1beta1.IValue[]; - - /** Cursor before. */ - public before: boolean; - - /** - * Creates a new Cursor instance using the specified properties. - * @param [properties] Properties to set - * @returns Cursor instance - */ - public static create(properties?: google.firestore.v1beta1.ICursor): google.firestore.v1beta1.Cursor; - - /** - * Encodes the specified Cursor message. Does not implicitly {@link google.firestore.v1beta1.Cursor.verify|verify} messages. - * @param message Cursor message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.ICursor, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified Cursor message, length delimited. Does not implicitly {@link google.firestore.v1beta1.Cursor.verify|verify} messages. - * @param message Cursor message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.ICursor, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a Cursor message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns Cursor - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.Cursor; - - /** - * Decodes a Cursor message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns Cursor - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.Cursor; - - /** - * Verifies a Cursor message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a Cursor message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns Cursor - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.Cursor; - - /** - * Creates a plain object from a Cursor message. Also converts values to other types if specified. - * @param message Cursor - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.Cursor, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this Cursor to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for Cursor - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a Write. */ - interface IWrite { - - /** Write update */ - update?: (google.firestore.v1beta1.IDocument|null); - - /** Write delete */ - "delete"?: (string|null); - - /** Write transform */ - transform?: (google.firestore.v1beta1.IDocumentTransform|null); - - /** Write updateMask */ - updateMask?: (google.firestore.v1beta1.IDocumentMask|null); - - /** Write updateTransforms */ - updateTransforms?: (google.firestore.v1beta1.DocumentTransform.IFieldTransform[]|null); - - /** Write currentDocument */ - currentDocument?: (google.firestore.v1beta1.IPrecondition|null); - } - - /** Represents a Write. */ - class Write implements IWrite { - - /** - * Constructs a new Write. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IWrite); - - /** Write update. */ - public update?: (google.firestore.v1beta1.IDocument|null); - - /** Write delete. */ - public delete?: (string|null); - - /** Write transform. */ - public transform?: (google.firestore.v1beta1.IDocumentTransform|null); - - /** Write updateMask. */ - public updateMask?: (google.firestore.v1beta1.IDocumentMask|null); - - /** Write updateTransforms. */ - public updateTransforms: google.firestore.v1beta1.DocumentTransform.IFieldTransform[]; - - /** Write currentDocument. */ - public currentDocument?: (google.firestore.v1beta1.IPrecondition|null); - - /** Write operation. */ - public operation?: ("update"|"delete"|"transform"); - - /** - * Creates a new Write instance using the specified properties. - * @param [properties] Properties to set - * @returns Write instance - */ - public static create(properties?: google.firestore.v1beta1.IWrite): google.firestore.v1beta1.Write; - - /** - * Encodes the specified Write message. Does not implicitly {@link google.firestore.v1beta1.Write.verify|verify} messages. - * @param message Write message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IWrite, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified Write message, length delimited. Does not implicitly {@link google.firestore.v1beta1.Write.verify|verify} messages. - * @param message Write message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IWrite, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a Write message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns Write - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.Write; - - /** - * Decodes a Write message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns Write - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.Write; - - /** - * Verifies a Write message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a Write message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns Write - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.Write; - - /** - * Creates a plain object from a Write message. Also converts values to other types if specified. - * @param message Write - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.Write, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this Write to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for Write - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a DocumentTransform. */ - interface IDocumentTransform { - - /** DocumentTransform document */ - document?: (string|null); - - /** DocumentTransform fieldTransforms */ - fieldTransforms?: (google.firestore.v1beta1.DocumentTransform.IFieldTransform[]|null); - } - - /** Represents a DocumentTransform. */ - class DocumentTransform implements IDocumentTransform { - - /** - * Constructs a new DocumentTransform. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IDocumentTransform); - - /** DocumentTransform document. */ - public document: string; - - /** DocumentTransform fieldTransforms. */ - public fieldTransforms: google.firestore.v1beta1.DocumentTransform.IFieldTransform[]; - - /** - * Creates a new DocumentTransform instance using the specified properties. - * @param [properties] Properties to set - * @returns DocumentTransform instance - */ - public static create(properties?: google.firestore.v1beta1.IDocumentTransform): google.firestore.v1beta1.DocumentTransform; - - /** - * Encodes the specified DocumentTransform message. Does not implicitly {@link google.firestore.v1beta1.DocumentTransform.verify|verify} messages. - * @param message DocumentTransform message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IDocumentTransform, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified DocumentTransform message, length delimited. Does not implicitly {@link google.firestore.v1beta1.DocumentTransform.verify|verify} messages. - * @param message DocumentTransform message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IDocumentTransform, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a DocumentTransform message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns DocumentTransform - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.DocumentTransform; - - /** - * Decodes a DocumentTransform message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns DocumentTransform - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.DocumentTransform; - - /** - * Verifies a DocumentTransform message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a DocumentTransform message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns DocumentTransform - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.DocumentTransform; - - /** - * Creates a plain object from a DocumentTransform message. Also converts values to other types if specified. - * @param message DocumentTransform - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.DocumentTransform, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this DocumentTransform to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for DocumentTransform - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - namespace DocumentTransform { - - /** Properties of a FieldTransform. */ - interface IFieldTransform { - - /** FieldTransform fieldPath */ - fieldPath?: (string|null); - - /** FieldTransform setToServerValue */ - setToServerValue?: (google.firestore.v1beta1.DocumentTransform.FieldTransform.ServerValue|keyof typeof google.firestore.v1beta1.DocumentTransform.FieldTransform.ServerValue|null); - - /** FieldTransform increment */ - increment?: (google.firestore.v1beta1.IValue|null); - - /** FieldTransform maximum */ - maximum?: (google.firestore.v1beta1.IValue|null); - - /** FieldTransform minimum */ - minimum?: (google.firestore.v1beta1.IValue|null); - - /** FieldTransform appendMissingElements */ - appendMissingElements?: (google.firestore.v1beta1.IArrayValue|null); - - /** FieldTransform removeAllFromArray */ - removeAllFromArray?: (google.firestore.v1beta1.IArrayValue|null); - } - - /** Represents a FieldTransform. */ - class FieldTransform implements IFieldTransform { - - /** - * Constructs a new FieldTransform. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.DocumentTransform.IFieldTransform); - - /** FieldTransform fieldPath. */ - public fieldPath: string; - - /** FieldTransform setToServerValue. */ - public setToServerValue?: (google.firestore.v1beta1.DocumentTransform.FieldTransform.ServerValue|keyof typeof google.firestore.v1beta1.DocumentTransform.FieldTransform.ServerValue|null); - - /** FieldTransform increment. */ - public increment?: (google.firestore.v1beta1.IValue|null); - - /** FieldTransform maximum. */ - public maximum?: (google.firestore.v1beta1.IValue|null); - - /** FieldTransform minimum. */ - public minimum?: (google.firestore.v1beta1.IValue|null); - - /** FieldTransform appendMissingElements. */ - public appendMissingElements?: (google.firestore.v1beta1.IArrayValue|null); - - /** FieldTransform removeAllFromArray. */ - public removeAllFromArray?: (google.firestore.v1beta1.IArrayValue|null); - - /** FieldTransform transformType. */ - public transformType?: ("setToServerValue"|"increment"|"maximum"|"minimum"|"appendMissingElements"|"removeAllFromArray"); - - /** - * Creates a new FieldTransform instance using the specified properties. - * @param [properties] Properties to set - * @returns FieldTransform instance - */ - public static create(properties?: google.firestore.v1beta1.DocumentTransform.IFieldTransform): google.firestore.v1beta1.DocumentTransform.FieldTransform; - - /** - * Encodes the specified FieldTransform message. Does not implicitly {@link google.firestore.v1beta1.DocumentTransform.FieldTransform.verify|verify} messages. - * @param message FieldTransform message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.DocumentTransform.IFieldTransform, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified FieldTransform message, length delimited. Does not implicitly {@link google.firestore.v1beta1.DocumentTransform.FieldTransform.verify|verify} messages. - * @param message FieldTransform message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.DocumentTransform.IFieldTransform, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a FieldTransform message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns FieldTransform - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.DocumentTransform.FieldTransform; - - /** - * Decodes a FieldTransform message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns FieldTransform - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.DocumentTransform.FieldTransform; - - /** - * Verifies a FieldTransform message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a FieldTransform message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns FieldTransform - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.DocumentTransform.FieldTransform; - - /** - * Creates a plain object from a FieldTransform message. Also converts values to other types if specified. - * @param message FieldTransform - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.DocumentTransform.FieldTransform, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this FieldTransform to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for FieldTransform - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - namespace FieldTransform { - - /** ServerValue enum. */ - enum ServerValue { - SERVER_VALUE_UNSPECIFIED = 0, - REQUEST_TIME = 1 - } - } - } - - /** Properties of a WriteResult. */ - interface IWriteResult { - - /** WriteResult updateTime */ - updateTime?: (google.protobuf.ITimestamp|null); - - /** WriteResult transformResults */ - transformResults?: (google.firestore.v1beta1.IValue[]|null); - } - - /** Represents a WriteResult. */ - class WriteResult implements IWriteResult { - - /** - * Constructs a new WriteResult. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IWriteResult); - - /** WriteResult updateTime. */ - public updateTime?: (google.protobuf.ITimestamp|null); - - /** WriteResult transformResults. */ - public transformResults: google.firestore.v1beta1.IValue[]; - - /** - * Creates a new WriteResult instance using the specified properties. - * @param [properties] Properties to set - * @returns WriteResult instance - */ - public static create(properties?: google.firestore.v1beta1.IWriteResult): google.firestore.v1beta1.WriteResult; - - /** - * Encodes the specified WriteResult message. Does not implicitly {@link google.firestore.v1beta1.WriteResult.verify|verify} messages. - * @param message WriteResult message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IWriteResult, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified WriteResult message, length delimited. Does not implicitly {@link google.firestore.v1beta1.WriteResult.verify|verify} messages. - * @param message WriteResult message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IWriteResult, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a WriteResult message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns WriteResult - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.WriteResult; - - /** - * Decodes a WriteResult message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns WriteResult - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.WriteResult; - - /** - * Verifies a WriteResult message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a WriteResult message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns WriteResult - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.WriteResult; - - /** - * Creates a plain object from a WriteResult message. Also converts values to other types if specified. - * @param message WriteResult - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.WriteResult, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this WriteResult to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for WriteResult - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a DocumentChange. */ - interface IDocumentChange { - - /** DocumentChange document */ - document?: (google.firestore.v1beta1.IDocument|null); - - /** DocumentChange targetIds */ - targetIds?: (number[]|null); - - /** DocumentChange removedTargetIds */ - removedTargetIds?: (number[]|null); - } - - /** Represents a DocumentChange. */ - class DocumentChange implements IDocumentChange { - - /** - * Constructs a new DocumentChange. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IDocumentChange); - - /** DocumentChange document. */ - public document?: (google.firestore.v1beta1.IDocument|null); - - /** DocumentChange targetIds. */ - public targetIds: number[]; - - /** DocumentChange removedTargetIds. */ - public removedTargetIds: number[]; - - /** - * Creates a new DocumentChange instance using the specified properties. - * @param [properties] Properties to set - * @returns DocumentChange instance - */ - public static create(properties?: google.firestore.v1beta1.IDocumentChange): google.firestore.v1beta1.DocumentChange; - - /** - * Encodes the specified DocumentChange message. Does not implicitly {@link google.firestore.v1beta1.DocumentChange.verify|verify} messages. - * @param message DocumentChange message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IDocumentChange, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified DocumentChange message, length delimited. Does not implicitly {@link google.firestore.v1beta1.DocumentChange.verify|verify} messages. - * @param message DocumentChange message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IDocumentChange, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a DocumentChange message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns DocumentChange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.DocumentChange; - - /** - * Decodes a DocumentChange message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns DocumentChange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.DocumentChange; - - /** - * Verifies a DocumentChange message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a DocumentChange message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns DocumentChange - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.DocumentChange; - - /** - * Creates a plain object from a DocumentChange message. Also converts values to other types if specified. - * @param message DocumentChange - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.DocumentChange, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this DocumentChange to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for DocumentChange - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a DocumentDelete. */ - interface IDocumentDelete { - - /** DocumentDelete document */ - document?: (string|null); - - /** DocumentDelete removedTargetIds */ - removedTargetIds?: (number[]|null); - - /** DocumentDelete readTime */ - readTime?: (google.protobuf.ITimestamp|null); - } - - /** Represents a DocumentDelete. */ - class DocumentDelete implements IDocumentDelete { - - /** - * Constructs a new DocumentDelete. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IDocumentDelete); - - /** DocumentDelete document. */ - public document: string; - - /** DocumentDelete removedTargetIds. */ - public removedTargetIds: number[]; - - /** DocumentDelete readTime. */ - public readTime?: (google.protobuf.ITimestamp|null); - - /** - * Creates a new DocumentDelete instance using the specified properties. - * @param [properties] Properties to set - * @returns DocumentDelete instance - */ - public static create(properties?: google.firestore.v1beta1.IDocumentDelete): google.firestore.v1beta1.DocumentDelete; - - /** - * Encodes the specified DocumentDelete message. Does not implicitly {@link google.firestore.v1beta1.DocumentDelete.verify|verify} messages. - * @param message DocumentDelete message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IDocumentDelete, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified DocumentDelete message, length delimited. Does not implicitly {@link google.firestore.v1beta1.DocumentDelete.verify|verify} messages. - * @param message DocumentDelete message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IDocumentDelete, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a DocumentDelete message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns DocumentDelete - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.DocumentDelete; - - /** - * Decodes a DocumentDelete message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns DocumentDelete - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.DocumentDelete; - - /** - * Verifies a DocumentDelete message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a DocumentDelete message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns DocumentDelete - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.DocumentDelete; - - /** - * Creates a plain object from a DocumentDelete message. Also converts values to other types if specified. - * @param message DocumentDelete - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.DocumentDelete, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this DocumentDelete to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for DocumentDelete - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } + /** Namespace api. */ + namespace api { - /** Properties of a DocumentRemove. */ - interface IDocumentRemove { + /** FieldBehavior enum. */ + enum FieldBehavior { + FIELD_BEHAVIOR_UNSPECIFIED = 0, + OPTIONAL = 1, + REQUIRED = 2, + OUTPUT_ONLY = 3, + INPUT_ONLY = 4, + IMMUTABLE = 5, + UNORDERED_LIST = 6, + NON_EMPTY_DEFAULT = 7, + IDENTIFIER = 8 + } - /** DocumentRemove document */ - document?: (string|null); + /** Properties of a ResourceDescriptor. */ + interface IResourceDescriptor { - /** DocumentRemove removedTargetIds */ - removedTargetIds?: (number[]|null); + /** ResourceDescriptor type */ + type?: (string|null); - /** DocumentRemove readTime */ - readTime?: (google.protobuf.ITimestamp|null); - } + /** ResourceDescriptor pattern */ + pattern?: (string[]|null); - /** Represents a DocumentRemove. */ - class DocumentRemove implements IDocumentRemove { + /** ResourceDescriptor nameField */ + nameField?: (string|null); - /** - * Constructs a new DocumentRemove. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IDocumentRemove); + /** ResourceDescriptor history */ + history?: (google.api.ResourceDescriptor.History|keyof typeof google.api.ResourceDescriptor.History|null); - /** DocumentRemove document. */ - public document: string; + /** ResourceDescriptor plural */ + plural?: (string|null); - /** DocumentRemove removedTargetIds. */ - public removedTargetIds: number[]; + /** ResourceDescriptor singular */ + singular?: (string|null); - /** DocumentRemove readTime. */ - public readTime?: (google.protobuf.ITimestamp|null); + /** ResourceDescriptor style */ + style?: (google.api.ResourceDescriptor.Style[]|null); + } - /** - * Creates a new DocumentRemove instance using the specified properties. - * @param [properties] Properties to set - * @returns DocumentRemove instance - */ - public static create(properties?: google.firestore.v1beta1.IDocumentRemove): google.firestore.v1beta1.DocumentRemove; + /** Represents a ResourceDescriptor. */ + class ResourceDescriptor implements IResourceDescriptor { - /** - * Encodes the specified DocumentRemove message. Does not implicitly {@link google.firestore.v1beta1.DocumentRemove.verify|verify} messages. - * @param message DocumentRemove message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IDocumentRemove, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Constructs a new ResourceDescriptor. + * @param [properties] Properties to set + */ + constructor(properties?: google.api.IResourceDescriptor); - /** - * Encodes the specified DocumentRemove message, length delimited. Does not implicitly {@link google.firestore.v1beta1.DocumentRemove.verify|verify} messages. - * @param message DocumentRemove message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IDocumentRemove, writer?: $protobuf.Writer): $protobuf.Writer; + /** ResourceDescriptor type. */ + public type: string; - /** - * Decodes a DocumentRemove message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns DocumentRemove - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.DocumentRemove; + /** ResourceDescriptor pattern. */ + public pattern: string[]; - /** - * Decodes a DocumentRemove message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns DocumentRemove - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.DocumentRemove; + /** ResourceDescriptor nameField. */ + public nameField: string; - /** - * Verifies a DocumentRemove message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** ResourceDescriptor history. */ + public history: (google.api.ResourceDescriptor.History|keyof typeof google.api.ResourceDescriptor.History); - /** - * Creates a DocumentRemove message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns DocumentRemove - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.DocumentRemove; + /** ResourceDescriptor plural. */ + public plural: string; - /** - * Creates a plain object from a DocumentRemove message. Also converts values to other types if specified. - * @param message DocumentRemove - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.DocumentRemove, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** ResourceDescriptor singular. */ + public singular: string; - /** - * Converts this DocumentRemove to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; + /** ResourceDescriptor style. */ + public style: google.api.ResourceDescriptor.Style[]; - /** - * Gets the default type url for DocumentRemove - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } + /** + * Creates a new ResourceDescriptor instance using the specified properties. + * @param [properties] Properties to set + * @returns ResourceDescriptor instance + */ + public static create(properties?: google.api.IResourceDescriptor): google.api.ResourceDescriptor; - /** Properties of an ExistenceFilter. */ - interface IExistenceFilter { + /** + * Encodes the specified ResourceDescriptor message. Does not implicitly {@link google.api.ResourceDescriptor.verify|verify} messages. + * @param message ResourceDescriptor message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.api.IResourceDescriptor, writer?: $protobuf.Writer): $protobuf.Writer; - /** ExistenceFilter targetId */ - targetId?: (number|null); + /** + * Encodes the specified ResourceDescriptor message, length delimited. Does not implicitly {@link google.api.ResourceDescriptor.verify|verify} messages. + * @param message ResourceDescriptor message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.api.IResourceDescriptor, writer?: $protobuf.Writer): $protobuf.Writer; - /** ExistenceFilter count */ - count?: (number|null); - } + /** + * Decodes a ResourceDescriptor message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ResourceDescriptor + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.ResourceDescriptor; - /** Represents an ExistenceFilter. */ - class ExistenceFilter implements IExistenceFilter { + /** + * Decodes a ResourceDescriptor message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ResourceDescriptor + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.ResourceDescriptor; - /** - * Constructs a new ExistenceFilter. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IExistenceFilter); + /** + * Verifies a ResourceDescriptor message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** ExistenceFilter targetId. */ - public targetId: number; + /** + * Creates a ResourceDescriptor message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ResourceDescriptor + */ + public static fromObject(object: { [k: string]: any }): google.api.ResourceDescriptor; - /** ExistenceFilter count. */ - public count: number; + /** + * Creates a plain object from a ResourceDescriptor message. Also converts values to other types if specified. + * @param message ResourceDescriptor + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.api.ResourceDescriptor, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Creates a new ExistenceFilter instance using the specified properties. - * @param [properties] Properties to set - * @returns ExistenceFilter instance - */ - public static create(properties?: google.firestore.v1beta1.IExistenceFilter): google.firestore.v1beta1.ExistenceFilter; + /** + * Converts this ResourceDescriptor to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; - /** - * Encodes the specified ExistenceFilter message. Does not implicitly {@link google.firestore.v1beta1.ExistenceFilter.verify|verify} messages. - * @param message ExistenceFilter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IExistenceFilter, writer?: $protobuf.Writer): $protobuf.Writer; + /** + * Gets the default type url for ResourceDescriptor + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } - /** - * Encodes the specified ExistenceFilter message, length delimited. Does not implicitly {@link google.firestore.v1beta1.ExistenceFilter.verify|verify} messages. - * @param message ExistenceFilter message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IExistenceFilter, writer?: $protobuf.Writer): $protobuf.Writer; + namespace ResourceDescriptor { - /** - * Decodes an ExistenceFilter message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns ExistenceFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.ExistenceFilter; + /** History enum. */ + enum History { + HISTORY_UNSPECIFIED = 0, + ORIGINALLY_SINGLE_PATTERN = 1, + FUTURE_MULTI_PATTERN = 2 + } - /** - * Decodes an ExistenceFilter message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns ExistenceFilter - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.ExistenceFilter; + /** Style enum. */ + enum Style { + STYLE_UNSPECIFIED = 0, + DECLARATIVE_FRIENDLY = 1 + } + } - /** - * Verifies an ExistenceFilter message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** Properties of a ResourceReference. */ + interface IResourceReference { - /** - * Creates an ExistenceFilter message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns ExistenceFilter - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.ExistenceFilter; + /** ResourceReference type */ + type?: (string|null); - /** - * Creates a plain object from an ExistenceFilter message. Also converts values to other types if specified. - * @param message ExistenceFilter - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.ExistenceFilter, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** ResourceReference childType */ + childType?: (string|null); + } - /** - * Converts this ExistenceFilter to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; + /** Represents a ResourceReference. */ + class ResourceReference implements IResourceReference { - /** - * Gets the default type url for ExistenceFilter - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } + /** + * Constructs a new ResourceReference. + * @param [properties] Properties to set + */ + constructor(properties?: google.api.IResourceReference); + + /** ResourceReference type. */ + public type: string; - /** Properties of an UndeliverableFirstGenEvent. */ - interface IUndeliverableFirstGenEvent { + /** ResourceReference childType. */ + public childType: string; - /** UndeliverableFirstGenEvent message */ - message?: (string|null); + /** + * Creates a new ResourceReference instance using the specified properties. + * @param [properties] Properties to set + * @returns ResourceReference instance + */ + public static create(properties?: google.api.IResourceReference): google.api.ResourceReference; - /** UndeliverableFirstGenEvent reason */ - reason?: (google.firestore.v1beta1.UndeliverableFirstGenEvent.Reason|keyof typeof google.firestore.v1beta1.UndeliverableFirstGenEvent.Reason|null); + /** + * Encodes the specified ResourceReference message. Does not implicitly {@link google.api.ResourceReference.verify|verify} messages. + * @param message ResourceReference message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.api.IResourceReference, writer?: $protobuf.Writer): $protobuf.Writer; - /** UndeliverableFirstGenEvent documentName */ - documentName?: (string|null); + /** + * Encodes the specified ResourceReference message, length delimited. Does not implicitly {@link google.api.ResourceReference.verify|verify} messages. + * @param message ResourceReference message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.api.IResourceReference, writer?: $protobuf.Writer): $protobuf.Writer; - /** UndeliverableFirstGenEvent documentChangeType */ - documentChangeType?: (google.firestore.v1beta1.UndeliverableFirstGenEvent.DocumentChangeType|keyof typeof google.firestore.v1beta1.UndeliverableFirstGenEvent.DocumentChangeType|null); + /** + * Decodes a ResourceReference message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ResourceReference + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.ResourceReference; - /** UndeliverableFirstGenEvent functionName */ - functionName?: (string[]|null); + /** + * Decodes a ResourceReference message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ResourceReference + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.ResourceReference; - /** UndeliverableFirstGenEvent triggeredTime */ - triggeredTime?: (google.protobuf.ITimestamp|null); - } + /** + * Verifies a ResourceReference message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** Represents an UndeliverableFirstGenEvent. */ - class UndeliverableFirstGenEvent implements IUndeliverableFirstGenEvent { + /** + * Creates a ResourceReference message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ResourceReference + */ + public static fromObject(object: { [k: string]: any }): google.api.ResourceReference; - /** - * Constructs a new UndeliverableFirstGenEvent. - * @param [properties] Properties to set - */ - constructor(properties?: google.firestore.v1beta1.IUndeliverableFirstGenEvent); + /** + * Creates a plain object from a ResourceReference message. Also converts values to other types if specified. + * @param message ResourceReference + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.api.ResourceReference, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** UndeliverableFirstGenEvent message. */ - public message: string; + /** + * Converts this ResourceReference to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; - /** UndeliverableFirstGenEvent reason. */ - public reason: (google.firestore.v1beta1.UndeliverableFirstGenEvent.Reason|keyof typeof google.firestore.v1beta1.UndeliverableFirstGenEvent.Reason); + /** + * Gets the default type url for ResourceReference + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } - /** UndeliverableFirstGenEvent documentName. */ - public documentName: string; + /** Properties of a Http. */ + interface IHttp { - /** UndeliverableFirstGenEvent documentChangeType. */ - public documentChangeType: (google.firestore.v1beta1.UndeliverableFirstGenEvent.DocumentChangeType|keyof typeof google.firestore.v1beta1.UndeliverableFirstGenEvent.DocumentChangeType); + /** Http rules */ + rules?: (google.api.IHttpRule[]|null); - /** UndeliverableFirstGenEvent functionName. */ - public functionName: string[]; + /** Http fullyDecodeReservedExpansion */ + fullyDecodeReservedExpansion?: (boolean|null); + } - /** UndeliverableFirstGenEvent triggeredTime. */ - public triggeredTime?: (google.protobuf.ITimestamp|null); + /** Represents a Http. */ + class Http implements IHttp { - /** - * Creates a new UndeliverableFirstGenEvent instance using the specified properties. - * @param [properties] Properties to set - * @returns UndeliverableFirstGenEvent instance - */ - public static create(properties?: google.firestore.v1beta1.IUndeliverableFirstGenEvent): google.firestore.v1beta1.UndeliverableFirstGenEvent; + /** + * Constructs a new Http. + * @param [properties] Properties to set + */ + constructor(properties?: google.api.IHttp); - /** - * Encodes the specified UndeliverableFirstGenEvent message. Does not implicitly {@link google.firestore.v1beta1.UndeliverableFirstGenEvent.verify|verify} messages. - * @param message UndeliverableFirstGenEvent message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.firestore.v1beta1.IUndeliverableFirstGenEvent, writer?: $protobuf.Writer): $protobuf.Writer; + /** Http rules. */ + public rules: google.api.IHttpRule[]; - /** - * Encodes the specified UndeliverableFirstGenEvent message, length delimited. Does not implicitly {@link google.firestore.v1beta1.UndeliverableFirstGenEvent.verify|verify} messages. - * @param message UndeliverableFirstGenEvent message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.firestore.v1beta1.IUndeliverableFirstGenEvent, writer?: $protobuf.Writer): $protobuf.Writer; + /** Http fullyDecodeReservedExpansion. */ + public fullyDecodeReservedExpansion: boolean; - /** - * Decodes an UndeliverableFirstGenEvent message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns UndeliverableFirstGenEvent - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.firestore.v1beta1.UndeliverableFirstGenEvent; + /** + * Creates a new Http instance using the specified properties. + * @param [properties] Properties to set + * @returns Http instance + */ + public static create(properties?: google.api.IHttp): google.api.Http; - /** - * Decodes an UndeliverableFirstGenEvent message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns UndeliverableFirstGenEvent - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.firestore.v1beta1.UndeliverableFirstGenEvent; + /** + * Encodes the specified Http message. Does not implicitly {@link google.api.Http.verify|verify} messages. + * @param message Http message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.api.IHttp, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Verifies an UndeliverableFirstGenEvent message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Encodes the specified Http message, length delimited. Does not implicitly {@link google.api.Http.verify|verify} messages. + * @param message Http message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.api.IHttp, writer?: $protobuf.Writer): $protobuf.Writer; - /** - * Creates an UndeliverableFirstGenEvent message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns UndeliverableFirstGenEvent - */ - public static fromObject(object: { [k: string]: any }): google.firestore.v1beta1.UndeliverableFirstGenEvent; + /** + * Decodes a Http message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Http + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.Http; - /** - * Creates a plain object from an UndeliverableFirstGenEvent message. Also converts values to other types if specified. - * @param message UndeliverableFirstGenEvent - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.firestore.v1beta1.UndeliverableFirstGenEvent, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Decodes a Http message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Http + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.Http; - /** - * Converts this UndeliverableFirstGenEvent to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; + /** + * Verifies a Http message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Gets the default type url for UndeliverableFirstGenEvent - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } + /** + * Creates a Http message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Http + */ + public static fromObject(object: { [k: string]: any }): google.api.Http; - namespace UndeliverableFirstGenEvent { + /** + * Creates a plain object from a Http message. Also converts values to other types if specified. + * @param message Http + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.api.Http, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** Reason enum. */ - enum Reason { - REASON_UNSPECIFIED = 0, - EXCEEDING_SIZE_LIMIT = 1 - } + /** + * Converts this Http to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; - /** DocumentChangeType enum. */ - enum DocumentChangeType { - DOCUMENT_CHANGE_TYPE_UNSPECIFIED = 0, - CREATE = 1, - DELETE = 2, - UPDATE = 3 - } - } + /** + * Gets the default type url for Http + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } - } - /** Namespace api. */ - namespace api { + /** Properties of a HttpRule. */ + interface IHttpRule { - /** FieldBehavior enum. */ - enum FieldBehavior { - FIELD_BEHAVIOR_UNSPECIFIED = 0, - OPTIONAL = 1, - REQUIRED = 2, - OUTPUT_ONLY = 3, - INPUT_ONLY = 4, - IMMUTABLE = 5, - UNORDERED_LIST = 6, - NON_EMPTY_DEFAULT = 7, - IDENTIFIER = 8 - } + /** HttpRule selector */ + selector?: (string|null); - /** Properties of a ResourceDescriptor. */ - interface IResourceDescriptor { + /** HttpRule get */ + get?: (string|null); - /** ResourceDescriptor type */ - type?: (string|null); + /** HttpRule put */ + put?: (string|null); - /** ResourceDescriptor pattern */ - pattern?: (string[]|null); + /** HttpRule post */ + post?: (string|null); - /** ResourceDescriptor nameField */ - nameField?: (string|null); + /** HttpRule delete */ + "delete"?: (string|null); - /** ResourceDescriptor history */ - history?: (google.api.ResourceDescriptor.History|keyof typeof google.api.ResourceDescriptor.History|null); + /** HttpRule patch */ + patch?: (string|null); - /** ResourceDescriptor plural */ - plural?: (string|null); + /** HttpRule custom */ + custom?: (google.api.ICustomHttpPattern|null); - /** ResourceDescriptor singular */ - singular?: (string|null); + /** HttpRule body */ + body?: (string|null); - /** ResourceDescriptor style */ - style?: (google.api.ResourceDescriptor.Style[]|null); + /** HttpRule responseBody */ + responseBody?: (string|null); + + /** HttpRule additionalBindings */ + additionalBindings?: (google.api.IHttpRule[]|null); } - /** Represents a ResourceDescriptor. */ - class ResourceDescriptor implements IResourceDescriptor { + /** Represents a HttpRule. */ + class HttpRule implements IHttpRule { /** - * Constructs a new ResourceDescriptor. + * Constructs a new HttpRule. * @param [properties] Properties to set */ - constructor(properties?: google.api.IResourceDescriptor); + constructor(properties?: google.api.IHttpRule); - /** ResourceDescriptor type. */ - public type: string; + /** HttpRule selector. */ + public selector: string; - /** ResourceDescriptor pattern. */ - public pattern: string[]; + /** HttpRule get. */ + public get?: (string|null); - /** ResourceDescriptor nameField. */ - public nameField: string; + /** HttpRule put. */ + public put?: (string|null); - /** ResourceDescriptor history. */ - public history: (google.api.ResourceDescriptor.History|keyof typeof google.api.ResourceDescriptor.History); + /** HttpRule post. */ + public post?: (string|null); - /** ResourceDescriptor plural. */ - public plural: string; + /** HttpRule delete. */ + public delete?: (string|null); - /** ResourceDescriptor singular. */ - public singular: string; + /** HttpRule patch. */ + public patch?: (string|null); - /** ResourceDescriptor style. */ - public style: google.api.ResourceDescriptor.Style[]; + /** HttpRule custom. */ + public custom?: (google.api.ICustomHttpPattern|null); + + /** HttpRule body. */ + public body: string; + + /** HttpRule responseBody. */ + public responseBody: string; + + /** HttpRule additionalBindings. */ + public additionalBindings: google.api.IHttpRule[]; + + /** HttpRule pattern. */ + public pattern?: ("get"|"put"|"post"|"delete"|"patch"|"custom"); /** - * Creates a new ResourceDescriptor instance using the specified properties. + * Creates a new HttpRule instance using the specified properties. * @param [properties] Properties to set - * @returns ResourceDescriptor instance + * @returns HttpRule instance */ - public static create(properties?: google.api.IResourceDescriptor): google.api.ResourceDescriptor; + public static create(properties?: google.api.IHttpRule): google.api.HttpRule; /** - * Encodes the specified ResourceDescriptor message. Does not implicitly {@link google.api.ResourceDescriptor.verify|verify} messages. - * @param message ResourceDescriptor message or plain object to encode + * Encodes the specified HttpRule message. Does not implicitly {@link google.api.HttpRule.verify|verify} messages. + * @param message HttpRule message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.api.IResourceDescriptor, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.api.IHttpRule, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified ResourceDescriptor message, length delimited. Does not implicitly {@link google.api.ResourceDescriptor.verify|verify} messages. - * @param message ResourceDescriptor message or plain object to encode + * Encodes the specified HttpRule message, length delimited. Does not implicitly {@link google.api.HttpRule.verify|verify} messages. + * @param message HttpRule message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.api.IResourceDescriptor, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.api.IHttpRule, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a ResourceDescriptor message from the specified reader or buffer. + * Decodes a HttpRule message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns ResourceDescriptor + * @returns HttpRule * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.ResourceDescriptor; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.HttpRule; /** - * Decodes a ResourceDescriptor message from the specified reader or buffer, length delimited. + * Decodes a HttpRule message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns ResourceDescriptor + * @returns HttpRule * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.ResourceDescriptor; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.HttpRule; /** - * Verifies a ResourceDescriptor message. + * Verifies a HttpRule message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a ResourceDescriptor message from a plain object. Also converts values to their respective internal types. + * Creates a HttpRule message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns ResourceDescriptor + * @returns HttpRule */ - public static fromObject(object: { [k: string]: any }): google.api.ResourceDescriptor; + public static fromObject(object: { [k: string]: any }): google.api.HttpRule; /** - * Creates a plain object from a ResourceDescriptor message. Also converts values to other types if specified. - * @param message ResourceDescriptor + * Creates a plain object from a HttpRule message. Also converts values to other types if specified. + * @param message HttpRule * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.api.ResourceDescriptor, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.api.HttpRule, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this ResourceDescriptor to JSON. + * Converts this HttpRule to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for ResourceDescriptor + * Gets the default type url for HttpRule * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - namespace ResourceDescriptor { - - /** History enum. */ - enum History { - HISTORY_UNSPECIFIED = 0, - ORIGINALLY_SINGLE_PATTERN = 1, - FUTURE_MULTI_PATTERN = 2 - } - - /** Style enum. */ - enum Style { - STYLE_UNSPECIFIED = 0, - DECLARATIVE_FRIENDLY = 1 - } - } - - /** Properties of a ResourceReference. */ - interface IResourceReference { + /** Properties of a CustomHttpPattern. */ + interface ICustomHttpPattern { - /** ResourceReference type */ - type?: (string|null); + /** CustomHttpPattern kind */ + kind?: (string|null); - /** ResourceReference childType */ - childType?: (string|null); + /** CustomHttpPattern path */ + path?: (string|null); } - /** Represents a ResourceReference. */ - class ResourceReference implements IResourceReference { + /** Represents a CustomHttpPattern. */ + class CustomHttpPattern implements ICustomHttpPattern { /** - * Constructs a new ResourceReference. + * Constructs a new CustomHttpPattern. * @param [properties] Properties to set */ - constructor(properties?: google.api.IResourceReference); + constructor(properties?: google.api.ICustomHttpPattern); - /** ResourceReference type. */ - public type: string; + /** CustomHttpPattern kind. */ + public kind: string; - /** ResourceReference childType. */ - public childType: string; + /** CustomHttpPattern path. */ + public path: string; /** - * Creates a new ResourceReference instance using the specified properties. + * Creates a new CustomHttpPattern instance using the specified properties. * @param [properties] Properties to set - * @returns ResourceReference instance + * @returns CustomHttpPattern instance */ - public static create(properties?: google.api.IResourceReference): google.api.ResourceReference; + public static create(properties?: google.api.ICustomHttpPattern): google.api.CustomHttpPattern; /** - * Encodes the specified ResourceReference message. Does not implicitly {@link google.api.ResourceReference.verify|verify} messages. - * @param message ResourceReference message or plain object to encode + * Encodes the specified CustomHttpPattern message. Does not implicitly {@link google.api.CustomHttpPattern.verify|verify} messages. + * @param message CustomHttpPattern message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.api.IResourceReference, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.api.ICustomHttpPattern, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified ResourceReference message, length delimited. Does not implicitly {@link google.api.ResourceReference.verify|verify} messages. - * @param message ResourceReference message or plain object to encode + * Encodes the specified CustomHttpPattern message, length delimited. Does not implicitly {@link google.api.CustomHttpPattern.verify|verify} messages. + * @param message CustomHttpPattern message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.api.IResourceReference, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.api.ICustomHttpPattern, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a ResourceReference message from the specified reader or buffer. + * Decodes a CustomHttpPattern message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns ResourceReference + * @returns CustomHttpPattern * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.ResourceReference; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.CustomHttpPattern; /** - * Decodes a ResourceReference message from the specified reader or buffer, length delimited. + * Decodes a CustomHttpPattern message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns ResourceReference + * @returns CustomHttpPattern * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.ResourceReference; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.CustomHttpPattern; /** - * Verifies a ResourceReference message. + * Verifies a CustomHttpPattern message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a ResourceReference message from a plain object. Also converts values to their respective internal types. + * Creates a CustomHttpPattern message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns ResourceReference + * @returns CustomHttpPattern */ - public static fromObject(object: { [k: string]: any }): google.api.ResourceReference; + public static fromObject(object: { [k: string]: any }): google.api.CustomHttpPattern; /** - * Creates a plain object from a ResourceReference message. Also converts values to other types if specified. - * @param message ResourceReference + * Creates a plain object from a CustomHttpPattern message. Also converts values to other types if specified. + * @param message CustomHttpPattern * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.api.ResourceReference, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.api.CustomHttpPattern, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this ResourceReference to JSON. + * Converts this CustomHttpPattern to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for ResourceReference + * Gets the default type url for CustomHttpPattern * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a Http. */ - interface IHttp { + /** Properties of a CommonLanguageSettings. */ + interface ICommonLanguageSettings { - /** Http rules */ - rules?: (google.api.IHttpRule[]|null); + /** CommonLanguageSettings referenceDocsUri */ + referenceDocsUri?: (string|null); - /** Http fullyDecodeReservedExpansion */ - fullyDecodeReservedExpansion?: (boolean|null); + /** CommonLanguageSettings destinations */ + destinations?: (google.api.ClientLibraryDestination[]|null); + + /** CommonLanguageSettings selectiveGapicGeneration */ + selectiveGapicGeneration?: (google.api.ISelectiveGapicGeneration|null); } - /** Represents a Http. */ - class Http implements IHttp { + /** Represents a CommonLanguageSettings. */ + class CommonLanguageSettings implements ICommonLanguageSettings { /** - * Constructs a new Http. + * Constructs a new CommonLanguageSettings. * @param [properties] Properties to set */ - constructor(properties?: google.api.IHttp); + constructor(properties?: google.api.ICommonLanguageSettings); - /** Http rules. */ - public rules: google.api.IHttpRule[]; + /** CommonLanguageSettings referenceDocsUri. */ + public referenceDocsUri: string; - /** Http fullyDecodeReservedExpansion. */ - public fullyDecodeReservedExpansion: boolean; + /** CommonLanguageSettings destinations. */ + public destinations: google.api.ClientLibraryDestination[]; + + /** CommonLanguageSettings selectiveGapicGeneration. */ + public selectiveGapicGeneration?: (google.api.ISelectiveGapicGeneration|null); /** - * Creates a new Http instance using the specified properties. + * Creates a new CommonLanguageSettings instance using the specified properties. * @param [properties] Properties to set - * @returns Http instance + * @returns CommonLanguageSettings instance */ - public static create(properties?: google.api.IHttp): google.api.Http; + public static create(properties?: google.api.ICommonLanguageSettings): google.api.CommonLanguageSettings; /** - * Encodes the specified Http message. Does not implicitly {@link google.api.Http.verify|verify} messages. - * @param message Http message or plain object to encode + * Encodes the specified CommonLanguageSettings message. Does not implicitly {@link google.api.CommonLanguageSettings.verify|verify} messages. + * @param message CommonLanguageSettings message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.api.IHttp, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.api.ICommonLanguageSettings, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Http message, length delimited. Does not implicitly {@link google.api.Http.verify|verify} messages. - * @param message Http message or plain object to encode + * Encodes the specified CommonLanguageSettings message, length delimited. Does not implicitly {@link google.api.CommonLanguageSettings.verify|verify} messages. + * @param message CommonLanguageSettings message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.api.IHttp, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.api.ICommonLanguageSettings, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a Http message from the specified reader or buffer. + * Decodes a CommonLanguageSettings message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Http + * @returns CommonLanguageSettings * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.Http; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.CommonLanguageSettings; /** - * Decodes a Http message from the specified reader or buffer, length delimited. + * Decodes a CommonLanguageSettings message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns Http + * @returns CommonLanguageSettings * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.Http; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.CommonLanguageSettings; /** - * Verifies a Http message. + * Verifies a CommonLanguageSettings message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a Http message from a plain object. Also converts values to their respective internal types. + * Creates a CommonLanguageSettings message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns Http + * @returns CommonLanguageSettings */ - public static fromObject(object: { [k: string]: any }): google.api.Http; + public static fromObject(object: { [k: string]: any }): google.api.CommonLanguageSettings; /** - * Creates a plain object from a Http message. Also converts values to other types if specified. - * @param message Http + * Creates a plain object from a CommonLanguageSettings message. Also converts values to other types if specified. + * @param message CommonLanguageSettings * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.api.Http, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.api.CommonLanguageSettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this Http to JSON. + * Converts this CommonLanguageSettings to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for Http + * Gets the default type url for CommonLanguageSettings * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a HttpRule. */ - interface IHttpRule { + /** Properties of a ClientLibrarySettings. */ + interface IClientLibrarySettings { - /** HttpRule selector */ - selector?: (string|null); + /** ClientLibrarySettings version */ + version?: (string|null); - /** HttpRule get */ - get?: (string|null); + /** ClientLibrarySettings launchStage */ + launchStage?: (google.api.LaunchStage|keyof typeof google.api.LaunchStage|null); - /** HttpRule put */ - put?: (string|null); + /** ClientLibrarySettings restNumericEnums */ + restNumericEnums?: (boolean|null); - /** HttpRule post */ - post?: (string|null); + /** ClientLibrarySettings javaSettings */ + javaSettings?: (google.api.IJavaSettings|null); - /** HttpRule delete */ - "delete"?: (string|null); + /** ClientLibrarySettings cppSettings */ + cppSettings?: (google.api.ICppSettings|null); - /** HttpRule patch */ - patch?: (string|null); + /** ClientLibrarySettings phpSettings */ + phpSettings?: (google.api.IPhpSettings|null); - /** HttpRule custom */ - custom?: (google.api.ICustomHttpPattern|null); + /** ClientLibrarySettings pythonSettings */ + pythonSettings?: (google.api.IPythonSettings|null); - /** HttpRule body */ - body?: (string|null); + /** ClientLibrarySettings nodeSettings */ + nodeSettings?: (google.api.INodeSettings|null); - /** HttpRule responseBody */ - responseBody?: (string|null); + /** ClientLibrarySettings dotnetSettings */ + dotnetSettings?: (google.api.IDotnetSettings|null); - /** HttpRule additionalBindings */ - additionalBindings?: (google.api.IHttpRule[]|null); + /** ClientLibrarySettings rubySettings */ + rubySettings?: (google.api.IRubySettings|null); + + /** ClientLibrarySettings goSettings */ + goSettings?: (google.api.IGoSettings|null); } - /** Represents a HttpRule. */ - class HttpRule implements IHttpRule { + /** Represents a ClientLibrarySettings. */ + class ClientLibrarySettings implements IClientLibrarySettings { /** - * Constructs a new HttpRule. + * Constructs a new ClientLibrarySettings. * @param [properties] Properties to set */ - constructor(properties?: google.api.IHttpRule); + constructor(properties?: google.api.IClientLibrarySettings); - /** HttpRule selector. */ - public selector: string; + /** ClientLibrarySettings version. */ + public version: string; - /** HttpRule get. */ - public get?: (string|null); + /** ClientLibrarySettings launchStage. */ + public launchStage: (google.api.LaunchStage|keyof typeof google.api.LaunchStage); - /** HttpRule put. */ - public put?: (string|null); + /** ClientLibrarySettings restNumericEnums. */ + public restNumericEnums: boolean; - /** HttpRule post. */ - public post?: (string|null); + /** ClientLibrarySettings javaSettings. */ + public javaSettings?: (google.api.IJavaSettings|null); - /** HttpRule delete. */ - public delete?: (string|null); + /** ClientLibrarySettings cppSettings. */ + public cppSettings?: (google.api.ICppSettings|null); - /** HttpRule patch. */ - public patch?: (string|null); + /** ClientLibrarySettings phpSettings. */ + public phpSettings?: (google.api.IPhpSettings|null); - /** HttpRule custom. */ - public custom?: (google.api.ICustomHttpPattern|null); + /** ClientLibrarySettings pythonSettings. */ + public pythonSettings?: (google.api.IPythonSettings|null); - /** HttpRule body. */ - public body: string; + /** ClientLibrarySettings nodeSettings. */ + public nodeSettings?: (google.api.INodeSettings|null); - /** HttpRule responseBody. */ - public responseBody: string; + /** ClientLibrarySettings dotnetSettings. */ + public dotnetSettings?: (google.api.IDotnetSettings|null); - /** HttpRule additionalBindings. */ - public additionalBindings: google.api.IHttpRule[]; + /** ClientLibrarySettings rubySettings. */ + public rubySettings?: (google.api.IRubySettings|null); - /** HttpRule pattern. */ - public pattern?: ("get"|"put"|"post"|"delete"|"patch"|"custom"); + /** ClientLibrarySettings goSettings. */ + public goSettings?: (google.api.IGoSettings|null); /** - * Creates a new HttpRule instance using the specified properties. + * Creates a new ClientLibrarySettings instance using the specified properties. * @param [properties] Properties to set - * @returns HttpRule instance + * @returns ClientLibrarySettings instance */ - public static create(properties?: google.api.IHttpRule): google.api.HttpRule; + public static create(properties?: google.api.IClientLibrarySettings): google.api.ClientLibrarySettings; /** - * Encodes the specified HttpRule message. Does not implicitly {@link google.api.HttpRule.verify|verify} messages. - * @param message HttpRule message or plain object to encode + * Encodes the specified ClientLibrarySettings message. Does not implicitly {@link google.api.ClientLibrarySettings.verify|verify} messages. + * @param message ClientLibrarySettings message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.api.IHttpRule, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.api.IClientLibrarySettings, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified HttpRule message, length delimited. Does not implicitly {@link google.api.HttpRule.verify|verify} messages. - * @param message HttpRule message or plain object to encode + * Encodes the specified ClientLibrarySettings message, length delimited. Does not implicitly {@link google.api.ClientLibrarySettings.verify|verify} messages. + * @param message ClientLibrarySettings message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.api.IHttpRule, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.api.IClientLibrarySettings, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a HttpRule message from the specified reader or buffer. + * Decodes a ClientLibrarySettings message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns HttpRule + * @returns ClientLibrarySettings * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.HttpRule; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.ClientLibrarySettings; /** - * Decodes a HttpRule message from the specified reader or buffer, length delimited. + * Decodes a ClientLibrarySettings message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns HttpRule + * @returns ClientLibrarySettings * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.HttpRule; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.ClientLibrarySettings; /** - * Verifies a HttpRule message. + * Verifies a ClientLibrarySettings message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a HttpRule message from a plain object. Also converts values to their respective internal types. + * Creates a ClientLibrarySettings message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns HttpRule + * @returns ClientLibrarySettings */ - public static fromObject(object: { [k: string]: any }): google.api.HttpRule; + public static fromObject(object: { [k: string]: any }): google.api.ClientLibrarySettings; /** - * Creates a plain object from a HttpRule message. Also converts values to other types if specified. - * @param message HttpRule + * Creates a plain object from a ClientLibrarySettings message. Also converts values to other types if specified. + * @param message ClientLibrarySettings * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.api.HttpRule, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.api.ClientLibrarySettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this HttpRule to JSON. + * Converts this ClientLibrarySettings to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for HttpRule + * Gets the default type url for ClientLibrarySettings * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a CustomHttpPattern. */ - interface ICustomHttpPattern { + /** Properties of a Publishing. */ + interface IPublishing { + + /** Publishing methodSettings */ + methodSettings?: (google.api.IMethodSettings[]|null); + + /** Publishing newIssueUri */ + newIssueUri?: (string|null); + + /** Publishing documentationUri */ + documentationUri?: (string|null); + + /** Publishing apiShortName */ + apiShortName?: (string|null); + + /** Publishing githubLabel */ + githubLabel?: (string|null); + + /** Publishing codeownerGithubTeams */ + codeownerGithubTeams?: (string[]|null); + + /** Publishing docTagPrefix */ + docTagPrefix?: (string|null); + + /** Publishing organization */ + organization?: (google.api.ClientLibraryOrganization|keyof typeof google.api.ClientLibraryOrganization|null); + + /** Publishing librarySettings */ + librarySettings?: (google.api.IClientLibrarySettings[]|null); - /** CustomHttpPattern kind */ - kind?: (string|null); + /** Publishing protoReferenceDocumentationUri */ + protoReferenceDocumentationUri?: (string|null); - /** CustomHttpPattern path */ - path?: (string|null); + /** Publishing restReferenceDocumentationUri */ + restReferenceDocumentationUri?: (string|null); } - /** Represents a CustomHttpPattern. */ - class CustomHttpPattern implements ICustomHttpPattern { + /** Represents a Publishing. */ + class Publishing implements IPublishing { /** - * Constructs a new CustomHttpPattern. + * Constructs a new Publishing. * @param [properties] Properties to set */ - constructor(properties?: google.api.ICustomHttpPattern); + constructor(properties?: google.api.IPublishing); - /** CustomHttpPattern kind. */ - public kind: string; + /** Publishing methodSettings. */ + public methodSettings: google.api.IMethodSettings[]; - /** CustomHttpPattern path. */ - public path: string; + /** Publishing newIssueUri. */ + public newIssueUri: string; + + /** Publishing documentationUri. */ + public documentationUri: string; + + /** Publishing apiShortName. */ + public apiShortName: string; + + /** Publishing githubLabel. */ + public githubLabel: string; + + /** Publishing codeownerGithubTeams. */ + public codeownerGithubTeams: string[]; + + /** Publishing docTagPrefix. */ + public docTagPrefix: string; + + /** Publishing organization. */ + public organization: (google.api.ClientLibraryOrganization|keyof typeof google.api.ClientLibraryOrganization); + + /** Publishing librarySettings. */ + public librarySettings: google.api.IClientLibrarySettings[]; + + /** Publishing protoReferenceDocumentationUri. */ + public protoReferenceDocumentationUri: string; + + /** Publishing restReferenceDocumentationUri. */ + public restReferenceDocumentationUri: string; /** - * Creates a new CustomHttpPattern instance using the specified properties. + * Creates a new Publishing instance using the specified properties. * @param [properties] Properties to set - * @returns CustomHttpPattern instance + * @returns Publishing instance */ - public static create(properties?: google.api.ICustomHttpPattern): google.api.CustomHttpPattern; + public static create(properties?: google.api.IPublishing): google.api.Publishing; /** - * Encodes the specified CustomHttpPattern message. Does not implicitly {@link google.api.CustomHttpPattern.verify|verify} messages. - * @param message CustomHttpPattern message or plain object to encode + * Encodes the specified Publishing message. Does not implicitly {@link google.api.Publishing.verify|verify} messages. + * @param message Publishing message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.api.ICustomHttpPattern, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.api.IPublishing, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified CustomHttpPattern message, length delimited. Does not implicitly {@link google.api.CustomHttpPattern.verify|verify} messages. - * @param message CustomHttpPattern message or plain object to encode + * Encodes the specified Publishing message, length delimited. Does not implicitly {@link google.api.Publishing.verify|verify} messages. + * @param message Publishing message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.api.ICustomHttpPattern, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.api.IPublishing, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a CustomHttpPattern message from the specified reader or buffer. + * Decodes a Publishing message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns CustomHttpPattern + * @returns Publishing * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.CustomHttpPattern; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.Publishing; /** - * Decodes a CustomHttpPattern message from the specified reader or buffer, length delimited. + * Decodes a Publishing message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns CustomHttpPattern + * @returns Publishing * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.CustomHttpPattern; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.Publishing; /** - * Verifies a CustomHttpPattern message. + * Verifies a Publishing message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a CustomHttpPattern message from a plain object. Also converts values to their respective internal types. + * Creates a Publishing message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns CustomHttpPattern + * @returns Publishing */ - public static fromObject(object: { [k: string]: any }): google.api.CustomHttpPattern; + public static fromObject(object: { [k: string]: any }): google.api.Publishing; /** - * Creates a plain object from a CustomHttpPattern message. Also converts values to other types if specified. - * @param message CustomHttpPattern + * Creates a plain object from a Publishing message. Also converts values to other types if specified. + * @param message Publishing * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.api.CustomHttpPattern, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.api.Publishing, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this CustomHttpPattern to JSON. + * Converts this Publishing to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for CustomHttpPattern + * Gets the default type url for Publishing * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a CommonLanguageSettings. */ - interface ICommonLanguageSettings { + /** Properties of a JavaSettings. */ + interface IJavaSettings { - /** CommonLanguageSettings referenceDocsUri */ - referenceDocsUri?: (string|null); + /** JavaSettings libraryPackage */ + libraryPackage?: (string|null); - /** CommonLanguageSettings destinations */ - destinations?: (google.api.ClientLibraryDestination[]|null); + /** JavaSettings serviceClassNames */ + serviceClassNames?: ({ [k: string]: string }|null); - /** CommonLanguageSettings selectiveGapicGeneration */ - selectiveGapicGeneration?: (google.api.ISelectiveGapicGeneration|null); + /** JavaSettings common */ + common?: (google.api.ICommonLanguageSettings|null); } - /** Represents a CommonLanguageSettings. */ - class CommonLanguageSettings implements ICommonLanguageSettings { + /** Represents a JavaSettings. */ + class JavaSettings implements IJavaSettings { /** - * Constructs a new CommonLanguageSettings. + * Constructs a new JavaSettings. * @param [properties] Properties to set */ - constructor(properties?: google.api.ICommonLanguageSettings); + constructor(properties?: google.api.IJavaSettings); - /** CommonLanguageSettings referenceDocsUri. */ - public referenceDocsUri: string; + /** JavaSettings libraryPackage. */ + public libraryPackage: string; - /** CommonLanguageSettings destinations. */ - public destinations: google.api.ClientLibraryDestination[]; + /** JavaSettings serviceClassNames. */ + public serviceClassNames: { [k: string]: string }; - /** CommonLanguageSettings selectiveGapicGeneration. */ - public selectiveGapicGeneration?: (google.api.ISelectiveGapicGeneration|null); + /** JavaSettings common. */ + public common?: (google.api.ICommonLanguageSettings|null); /** - * Creates a new CommonLanguageSettings instance using the specified properties. + * Creates a new JavaSettings instance using the specified properties. * @param [properties] Properties to set - * @returns CommonLanguageSettings instance + * @returns JavaSettings instance */ - public static create(properties?: google.api.ICommonLanguageSettings): google.api.CommonLanguageSettings; + public static create(properties?: google.api.IJavaSettings): google.api.JavaSettings; /** - * Encodes the specified CommonLanguageSettings message. Does not implicitly {@link google.api.CommonLanguageSettings.verify|verify} messages. - * @param message CommonLanguageSettings message or plain object to encode + * Encodes the specified JavaSettings message. Does not implicitly {@link google.api.JavaSettings.verify|verify} messages. + * @param message JavaSettings message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.api.ICommonLanguageSettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.api.IJavaSettings, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified CommonLanguageSettings message, length delimited. Does not implicitly {@link google.api.CommonLanguageSettings.verify|verify} messages. - * @param message CommonLanguageSettings message or plain object to encode + * Encodes the specified JavaSettings message, length delimited. Does not implicitly {@link google.api.JavaSettings.verify|verify} messages. + * @param message JavaSettings message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.api.ICommonLanguageSettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.api.IJavaSettings, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a CommonLanguageSettings message from the specified reader or buffer. + * Decodes a JavaSettings message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns CommonLanguageSettings + * @returns JavaSettings * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.CommonLanguageSettings; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.JavaSettings; /** - * Decodes a CommonLanguageSettings message from the specified reader or buffer, length delimited. + * Decodes a JavaSettings message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns CommonLanguageSettings + * @returns JavaSettings * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.CommonLanguageSettings; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.JavaSettings; /** - * Verifies a CommonLanguageSettings message. + * Verifies a JavaSettings message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a CommonLanguageSettings message from a plain object. Also converts values to their respective internal types. + * Creates a JavaSettings message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns CommonLanguageSettings + * @returns JavaSettings */ - public static fromObject(object: { [k: string]: any }): google.api.CommonLanguageSettings; + public static fromObject(object: { [k: string]: any }): google.api.JavaSettings; /** - * Creates a plain object from a CommonLanguageSettings message. Also converts values to other types if specified. - * @param message CommonLanguageSettings + * Creates a plain object from a JavaSettings message. Also converts values to other types if specified. + * @param message JavaSettings * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.api.CommonLanguageSettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this CommonLanguageSettings to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for CommonLanguageSettings - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - - /** Properties of a ClientLibrarySettings. */ - interface IClientLibrarySettings { - - /** ClientLibrarySettings version */ - version?: (string|null); - - /** ClientLibrarySettings launchStage */ - launchStage?: (google.api.LaunchStage|keyof typeof google.api.LaunchStage|null); - - /** ClientLibrarySettings restNumericEnums */ - restNumericEnums?: (boolean|null); - - /** ClientLibrarySettings javaSettings */ - javaSettings?: (google.api.IJavaSettings|null); - - /** ClientLibrarySettings cppSettings */ - cppSettings?: (google.api.ICppSettings|null); - - /** ClientLibrarySettings phpSettings */ - phpSettings?: (google.api.IPhpSettings|null); - - /** ClientLibrarySettings pythonSettings */ - pythonSettings?: (google.api.IPythonSettings|null); - - /** ClientLibrarySettings nodeSettings */ - nodeSettings?: (google.api.INodeSettings|null); - - /** ClientLibrarySettings dotnetSettings */ - dotnetSettings?: (google.api.IDotnetSettings|null); - - /** ClientLibrarySettings rubySettings */ - rubySettings?: (google.api.IRubySettings|null); - - /** ClientLibrarySettings goSettings */ - goSettings?: (google.api.IGoSettings|null); - } - - /** Represents a ClientLibrarySettings. */ - class ClientLibrarySettings implements IClientLibrarySettings { + public static toObject(message: google.api.JavaSettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Constructs a new ClientLibrarySettings. - * @param [properties] Properties to set - */ - constructor(properties?: google.api.IClientLibrarySettings); - - /** ClientLibrarySettings version. */ - public version: string; - - /** ClientLibrarySettings launchStage. */ - public launchStage: (google.api.LaunchStage|keyof typeof google.api.LaunchStage); - - /** ClientLibrarySettings restNumericEnums. */ - public restNumericEnums: boolean; - - /** ClientLibrarySettings javaSettings. */ - public javaSettings?: (google.api.IJavaSettings|null); - - /** ClientLibrarySettings cppSettings. */ - public cppSettings?: (google.api.ICppSettings|null); + * Converts this JavaSettings to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; - /** ClientLibrarySettings phpSettings. */ - public phpSettings?: (google.api.IPhpSettings|null); + /** + * Gets the default type url for JavaSettings + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } - /** ClientLibrarySettings pythonSettings. */ - public pythonSettings?: (google.api.IPythonSettings|null); + /** Properties of a CppSettings. */ + interface ICppSettings { - /** ClientLibrarySettings nodeSettings. */ - public nodeSettings?: (google.api.INodeSettings|null); + /** CppSettings common */ + common?: (google.api.ICommonLanguageSettings|null); + } - /** ClientLibrarySettings dotnetSettings. */ - public dotnetSettings?: (google.api.IDotnetSettings|null); + /** Represents a CppSettings. */ + class CppSettings implements ICppSettings { - /** ClientLibrarySettings rubySettings. */ - public rubySettings?: (google.api.IRubySettings|null); + /** + * Constructs a new CppSettings. + * @param [properties] Properties to set + */ + constructor(properties?: google.api.ICppSettings); - /** ClientLibrarySettings goSettings. */ - public goSettings?: (google.api.IGoSettings|null); + /** CppSettings common. */ + public common?: (google.api.ICommonLanguageSettings|null); /** - * Creates a new ClientLibrarySettings instance using the specified properties. + * Creates a new CppSettings instance using the specified properties. * @param [properties] Properties to set - * @returns ClientLibrarySettings instance + * @returns CppSettings instance */ - public static create(properties?: google.api.IClientLibrarySettings): google.api.ClientLibrarySettings; + public static create(properties?: google.api.ICppSettings): google.api.CppSettings; /** - * Encodes the specified ClientLibrarySettings message. Does not implicitly {@link google.api.ClientLibrarySettings.verify|verify} messages. - * @param message ClientLibrarySettings message or plain object to encode + * Encodes the specified CppSettings message. Does not implicitly {@link google.api.CppSettings.verify|verify} messages. + * @param message CppSettings message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.api.IClientLibrarySettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.api.ICppSettings, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified ClientLibrarySettings message, length delimited. Does not implicitly {@link google.api.ClientLibrarySettings.verify|verify} messages. - * @param message ClientLibrarySettings message or plain object to encode + * Encodes the specified CppSettings message, length delimited. Does not implicitly {@link google.api.CppSettings.verify|verify} messages. + * @param message CppSettings message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.api.IClientLibrarySettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.api.ICppSettings, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a ClientLibrarySettings message from the specified reader or buffer. + * Decodes a CppSettings message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns ClientLibrarySettings + * @returns CppSettings * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.ClientLibrarySettings; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.CppSettings; /** - * Decodes a ClientLibrarySettings message from the specified reader or buffer, length delimited. + * Decodes a CppSettings message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns ClientLibrarySettings + * @returns CppSettings * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.ClientLibrarySettings; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.CppSettings; /** - * Verifies a ClientLibrarySettings message. + * Verifies a CppSettings message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a ClientLibrarySettings message from a plain object. Also converts values to their respective internal types. + * Creates a CppSettings message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns ClientLibrarySettings + * @returns CppSettings */ - public static fromObject(object: { [k: string]: any }): google.api.ClientLibrarySettings; + public static fromObject(object: { [k: string]: any }): google.api.CppSettings; /** - * Creates a plain object from a ClientLibrarySettings message. Also converts values to other types if specified. - * @param message ClientLibrarySettings + * Creates a plain object from a CppSettings message. Also converts values to other types if specified. + * @param message CppSettings * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.api.ClientLibrarySettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.api.CppSettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this ClientLibrarySettings to JSON. + * Converts this CppSettings to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for ClientLibrarySettings + * Gets the default type url for CppSettings * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a Publishing. */ - interface IPublishing { - - /** Publishing methodSettings */ - methodSettings?: (google.api.IMethodSettings[]|null); - - /** Publishing newIssueUri */ - newIssueUri?: (string|null); - - /** Publishing documentationUri */ - documentationUri?: (string|null); - - /** Publishing apiShortName */ - apiShortName?: (string|null); - - /** Publishing githubLabel */ - githubLabel?: (string|null); - - /** Publishing codeownerGithubTeams */ - codeownerGithubTeams?: (string[]|null); - - /** Publishing docTagPrefix */ - docTagPrefix?: (string|null); - - /** Publishing organization */ - organization?: (google.api.ClientLibraryOrganization|keyof typeof google.api.ClientLibraryOrganization|null); - - /** Publishing librarySettings */ - librarySettings?: (google.api.IClientLibrarySettings[]|null); + /** Properties of a PhpSettings. */ + interface IPhpSettings { - /** Publishing protoReferenceDocumentationUri */ - protoReferenceDocumentationUri?: (string|null); + /** PhpSettings common */ + common?: (google.api.ICommonLanguageSettings|null); - /** Publishing restReferenceDocumentationUri */ - restReferenceDocumentationUri?: (string|null); + /** PhpSettings libraryPackage */ + libraryPackage?: (string|null); } - /** Represents a Publishing. */ - class Publishing implements IPublishing { + /** Represents a PhpSettings. */ + class PhpSettings implements IPhpSettings { /** - * Constructs a new Publishing. + * Constructs a new PhpSettings. * @param [properties] Properties to set */ - constructor(properties?: google.api.IPublishing); - - /** Publishing methodSettings. */ - public methodSettings: google.api.IMethodSettings[]; - - /** Publishing newIssueUri. */ - public newIssueUri: string; - - /** Publishing documentationUri. */ - public documentationUri: string; - - /** Publishing apiShortName. */ - public apiShortName: string; - - /** Publishing githubLabel. */ - public githubLabel: string; - - /** Publishing codeownerGithubTeams. */ - public codeownerGithubTeams: string[]; - - /** Publishing docTagPrefix. */ - public docTagPrefix: string; - - /** Publishing organization. */ - public organization: (google.api.ClientLibraryOrganization|keyof typeof google.api.ClientLibraryOrganization); - - /** Publishing librarySettings. */ - public librarySettings: google.api.IClientLibrarySettings[]; + constructor(properties?: google.api.IPhpSettings); - /** Publishing protoReferenceDocumentationUri. */ - public protoReferenceDocumentationUri: string; + /** PhpSettings common. */ + public common?: (google.api.ICommonLanguageSettings|null); - /** Publishing restReferenceDocumentationUri. */ - public restReferenceDocumentationUri: string; + /** PhpSettings libraryPackage. */ + public libraryPackage: string; /** - * Creates a new Publishing instance using the specified properties. + * Creates a new PhpSettings instance using the specified properties. * @param [properties] Properties to set - * @returns Publishing instance + * @returns PhpSettings instance */ - public static create(properties?: google.api.IPublishing): google.api.Publishing; + public static create(properties?: google.api.IPhpSettings): google.api.PhpSettings; /** - * Encodes the specified Publishing message. Does not implicitly {@link google.api.Publishing.verify|verify} messages. - * @param message Publishing message or plain object to encode + * Encodes the specified PhpSettings message. Does not implicitly {@link google.api.PhpSettings.verify|verify} messages. + * @param message PhpSettings message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.api.IPublishing, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.api.IPhpSettings, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Publishing message, length delimited. Does not implicitly {@link google.api.Publishing.verify|verify} messages. - * @param message Publishing message or plain object to encode + * Encodes the specified PhpSettings message, length delimited. Does not implicitly {@link google.api.PhpSettings.verify|verify} messages. + * @param message PhpSettings message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.api.IPublishing, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.api.IPhpSettings, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a Publishing message from the specified reader or buffer. + * Decodes a PhpSettings message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Publishing + * @returns PhpSettings * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.Publishing; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.PhpSettings; /** - * Decodes a Publishing message from the specified reader or buffer, length delimited. + * Decodes a PhpSettings message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns Publishing + * @returns PhpSettings * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.Publishing; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.PhpSettings; /** - * Verifies a Publishing message. + * Verifies a PhpSettings message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a Publishing message from a plain object. Also converts values to their respective internal types. + * Creates a PhpSettings message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns Publishing + * @returns PhpSettings */ - public static fromObject(object: { [k: string]: any }): google.api.Publishing; + public static fromObject(object: { [k: string]: any }): google.api.PhpSettings; /** - * Creates a plain object from a Publishing message. Also converts values to other types if specified. - * @param message Publishing + * Creates a plain object from a PhpSettings message. Also converts values to other types if specified. + * @param message PhpSettings * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.api.Publishing, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.api.PhpSettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this Publishing to JSON. + * Converts this PhpSettings to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for Publishing + * Gets the default type url for PhpSettings * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a JavaSettings. */ - interface IJavaSettings { - - /** JavaSettings libraryPackage */ - libraryPackage?: (string|null); - - /** JavaSettings serviceClassNames */ - serviceClassNames?: ({ [k: string]: string }|null); + /** Properties of a PythonSettings. */ + interface IPythonSettings { - /** JavaSettings common */ + /** PythonSettings common */ common?: (google.api.ICommonLanguageSettings|null); + + /** PythonSettings experimentalFeatures */ + experimentalFeatures?: (google.api.PythonSettings.IExperimentalFeatures|null); } - /** Represents a JavaSettings. */ - class JavaSettings implements IJavaSettings { + /** Represents a PythonSettings. */ + class PythonSettings implements IPythonSettings { /** - * Constructs a new JavaSettings. + * Constructs a new PythonSettings. * @param [properties] Properties to set */ - constructor(properties?: google.api.IJavaSettings); - - /** JavaSettings libraryPackage. */ - public libraryPackage: string; - - /** JavaSettings serviceClassNames. */ - public serviceClassNames: { [k: string]: string }; + constructor(properties?: google.api.IPythonSettings); - /** JavaSettings common. */ + /** PythonSettings common. */ public common?: (google.api.ICommonLanguageSettings|null); + /** PythonSettings experimentalFeatures. */ + public experimentalFeatures?: (google.api.PythonSettings.IExperimentalFeatures|null); + /** - * Creates a new JavaSettings instance using the specified properties. + * Creates a new PythonSettings instance using the specified properties. * @param [properties] Properties to set - * @returns JavaSettings instance + * @returns PythonSettings instance */ - public static create(properties?: google.api.IJavaSettings): google.api.JavaSettings; + public static create(properties?: google.api.IPythonSettings): google.api.PythonSettings; /** - * Encodes the specified JavaSettings message. Does not implicitly {@link google.api.JavaSettings.verify|verify} messages. - * @param message JavaSettings message or plain object to encode + * Encodes the specified PythonSettings message. Does not implicitly {@link google.api.PythonSettings.verify|verify} messages. + * @param message PythonSettings message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.api.IJavaSettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.api.IPythonSettings, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified JavaSettings message, length delimited. Does not implicitly {@link google.api.JavaSettings.verify|verify} messages. - * @param message JavaSettings message or plain object to encode + * Encodes the specified PythonSettings message, length delimited. Does not implicitly {@link google.api.PythonSettings.verify|verify} messages. + * @param message PythonSettings message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.api.IJavaSettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.api.IPythonSettings, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a JavaSettings message from the specified reader or buffer. + * Decodes a PythonSettings message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns JavaSettings + * @returns PythonSettings * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.JavaSettings; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.PythonSettings; /** - * Decodes a JavaSettings message from the specified reader or buffer, length delimited. + * Decodes a PythonSettings message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns JavaSettings + * @returns PythonSettings * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.JavaSettings; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.PythonSettings; /** - * Verifies a JavaSettings message. + * Verifies a PythonSettings message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a JavaSettings message from a plain object. Also converts values to their respective internal types. + * Creates a PythonSettings message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns JavaSettings + * @returns PythonSettings */ - public static fromObject(object: { [k: string]: any }): google.api.JavaSettings; + public static fromObject(object: { [k: string]: any }): google.api.PythonSettings; /** - * Creates a plain object from a JavaSettings message. Also converts values to other types if specified. - * @param message JavaSettings + * Creates a plain object from a PythonSettings message. Also converts values to other types if specified. + * @param message PythonSettings * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.api.JavaSettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.api.PythonSettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this JavaSettings to JSON. + * Converts this PythonSettings to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for JavaSettings + * Gets the default type url for PythonSettings * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a CppSettings. */ - interface ICppSettings { + namespace PythonSettings { - /** CppSettings common */ + /** Properties of an ExperimentalFeatures. */ + interface IExperimentalFeatures { + + /** ExperimentalFeatures restAsyncIoEnabled */ + restAsyncIoEnabled?: (boolean|null); + + /** ExperimentalFeatures protobufPythonicTypesEnabled */ + protobufPythonicTypesEnabled?: (boolean|null); + + /** ExperimentalFeatures unversionedPackageDisabled */ + unversionedPackageDisabled?: (boolean|null); + } + + /** Represents an ExperimentalFeatures. */ + class ExperimentalFeatures implements IExperimentalFeatures { + + /** + * Constructs a new ExperimentalFeatures. + * @param [properties] Properties to set + */ + constructor(properties?: google.api.PythonSettings.IExperimentalFeatures); + + /** ExperimentalFeatures restAsyncIoEnabled. */ + public restAsyncIoEnabled: boolean; + + /** ExperimentalFeatures protobufPythonicTypesEnabled. */ + public protobufPythonicTypesEnabled: boolean; + + /** ExperimentalFeatures unversionedPackageDisabled. */ + public unversionedPackageDisabled: boolean; + + /** + * Creates a new ExperimentalFeatures instance using the specified properties. + * @param [properties] Properties to set + * @returns ExperimentalFeatures instance + */ + public static create(properties?: google.api.PythonSettings.IExperimentalFeatures): google.api.PythonSettings.ExperimentalFeatures; + + /** + * Encodes the specified ExperimentalFeatures message. Does not implicitly {@link google.api.PythonSettings.ExperimentalFeatures.verify|verify} messages. + * @param message ExperimentalFeatures message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.api.PythonSettings.IExperimentalFeatures, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ExperimentalFeatures message, length delimited. Does not implicitly {@link google.api.PythonSettings.ExperimentalFeatures.verify|verify} messages. + * @param message ExperimentalFeatures message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.api.PythonSettings.IExperimentalFeatures, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an ExperimentalFeatures message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ExperimentalFeatures + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.PythonSettings.ExperimentalFeatures; + + /** + * Decodes an ExperimentalFeatures message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ExperimentalFeatures + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.PythonSettings.ExperimentalFeatures; + + /** + * Verifies an ExperimentalFeatures message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an ExperimentalFeatures message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ExperimentalFeatures + */ + public static fromObject(object: { [k: string]: any }): google.api.PythonSettings.ExperimentalFeatures; + + /** + * Creates a plain object from an ExperimentalFeatures message. Also converts values to other types if specified. + * @param message ExperimentalFeatures + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.api.PythonSettings.ExperimentalFeatures, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ExperimentalFeatures to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ExperimentalFeatures + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + } + + /** Properties of a NodeSettings. */ + interface INodeSettings { + + /** NodeSettings common */ common?: (google.api.ICommonLanguageSettings|null); } - /** Represents a CppSettings. */ - class CppSettings implements ICppSettings { + /** Represents a NodeSettings. */ + class NodeSettings implements INodeSettings { /** - * Constructs a new CppSettings. + * Constructs a new NodeSettings. * @param [properties] Properties to set */ - constructor(properties?: google.api.ICppSettings); + constructor(properties?: google.api.INodeSettings); - /** CppSettings common. */ + /** NodeSettings common. */ public common?: (google.api.ICommonLanguageSettings|null); /** - * Creates a new CppSettings instance using the specified properties. + * Creates a new NodeSettings instance using the specified properties. * @param [properties] Properties to set - * @returns CppSettings instance + * @returns NodeSettings instance */ - public static create(properties?: google.api.ICppSettings): google.api.CppSettings; + public static create(properties?: google.api.INodeSettings): google.api.NodeSettings; /** - * Encodes the specified CppSettings message. Does not implicitly {@link google.api.CppSettings.verify|verify} messages. - * @param message CppSettings message or plain object to encode + * Encodes the specified NodeSettings message. Does not implicitly {@link google.api.NodeSettings.verify|verify} messages. + * @param message NodeSettings message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.api.ICppSettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.api.INodeSettings, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified CppSettings message, length delimited. Does not implicitly {@link google.api.CppSettings.verify|verify} messages. - * @param message CppSettings message or plain object to encode + * Encodes the specified NodeSettings message, length delimited. Does not implicitly {@link google.api.NodeSettings.verify|verify} messages. + * @param message NodeSettings message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.api.ICppSettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.api.INodeSettings, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a CppSettings message from the specified reader or buffer. + * Decodes a NodeSettings message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns CppSettings + * @returns NodeSettings * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.CppSettings; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.NodeSettings; /** - * Decodes a CppSettings message from the specified reader or buffer, length delimited. + * Decodes a NodeSettings message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns CppSettings + * @returns NodeSettings * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.CppSettings; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.NodeSettings; /** - * Verifies a CppSettings message. + * Verifies a NodeSettings message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a CppSettings message from a plain object. Also converts values to their respective internal types. + * Creates a NodeSettings message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns CppSettings + * @returns NodeSettings */ - public static fromObject(object: { [k: string]: any }): google.api.CppSettings; + public static fromObject(object: { [k: string]: any }): google.api.NodeSettings; /** - * Creates a plain object from a CppSettings message. Also converts values to other types if specified. - * @param message CppSettings + * Creates a plain object from a NodeSettings message. Also converts values to other types if specified. + * @param message NodeSettings * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.api.CppSettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.api.NodeSettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this CppSettings to JSON. + * Converts this NodeSettings to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for CppSettings + * Gets the default type url for NodeSettings * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a PhpSettings. */ - interface IPhpSettings { + /** Properties of a DotnetSettings. */ + interface IDotnetSettings { - /** PhpSettings common */ + /** DotnetSettings common */ common?: (google.api.ICommonLanguageSettings|null); + + /** DotnetSettings renamedServices */ + renamedServices?: ({ [k: string]: string }|null); + + /** DotnetSettings renamedResources */ + renamedResources?: ({ [k: string]: string }|null); + + /** DotnetSettings ignoredResources */ + ignoredResources?: (string[]|null); + + /** DotnetSettings forcedNamespaceAliases */ + forcedNamespaceAliases?: (string[]|null); + + /** DotnetSettings handwrittenSignatures */ + handwrittenSignatures?: (string[]|null); } - /** Represents a PhpSettings. */ - class PhpSettings implements IPhpSettings { + /** Represents a DotnetSettings. */ + class DotnetSettings implements IDotnetSettings { + + /** + * Constructs a new DotnetSettings. + * @param [properties] Properties to set + */ + constructor(properties?: google.api.IDotnetSettings); + + /** DotnetSettings common. */ + public common?: (google.api.ICommonLanguageSettings|null); + + /** DotnetSettings renamedServices. */ + public renamedServices: { [k: string]: string }; + + /** DotnetSettings renamedResources. */ + public renamedResources: { [k: string]: string }; + + /** DotnetSettings ignoredResources. */ + public ignoredResources: string[]; - /** - * Constructs a new PhpSettings. - * @param [properties] Properties to set - */ - constructor(properties?: google.api.IPhpSettings); + /** DotnetSettings forcedNamespaceAliases. */ + public forcedNamespaceAliases: string[]; - /** PhpSettings common. */ - public common?: (google.api.ICommonLanguageSettings|null); + /** DotnetSettings handwrittenSignatures. */ + public handwrittenSignatures: string[]; /** - * Creates a new PhpSettings instance using the specified properties. + * Creates a new DotnetSettings instance using the specified properties. * @param [properties] Properties to set - * @returns PhpSettings instance + * @returns DotnetSettings instance */ - public static create(properties?: google.api.IPhpSettings): google.api.PhpSettings; + public static create(properties?: google.api.IDotnetSettings): google.api.DotnetSettings; /** - * Encodes the specified PhpSettings message. Does not implicitly {@link google.api.PhpSettings.verify|verify} messages. - * @param message PhpSettings message or plain object to encode + * Encodes the specified DotnetSettings message. Does not implicitly {@link google.api.DotnetSettings.verify|verify} messages. + * @param message DotnetSettings message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.api.IPhpSettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.api.IDotnetSettings, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified PhpSettings message, length delimited. Does not implicitly {@link google.api.PhpSettings.verify|verify} messages. - * @param message PhpSettings message or plain object to encode + * Encodes the specified DotnetSettings message, length delimited. Does not implicitly {@link google.api.DotnetSettings.verify|verify} messages. + * @param message DotnetSettings message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.api.IPhpSettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.api.IDotnetSettings, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a PhpSettings message from the specified reader or buffer. + * Decodes a DotnetSettings message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns PhpSettings + * @returns DotnetSettings * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.PhpSettings; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.DotnetSettings; /** - * Decodes a PhpSettings message from the specified reader or buffer, length delimited. + * Decodes a DotnetSettings message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns PhpSettings + * @returns DotnetSettings * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.PhpSettings; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.DotnetSettings; /** - * Verifies a PhpSettings message. + * Verifies a DotnetSettings message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a PhpSettings message from a plain object. Also converts values to their respective internal types. + * Creates a DotnetSettings message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns PhpSettings + * @returns DotnetSettings */ - public static fromObject(object: { [k: string]: any }): google.api.PhpSettings; + public static fromObject(object: { [k: string]: any }): google.api.DotnetSettings; /** - * Creates a plain object from a PhpSettings message. Also converts values to other types if specified. - * @param message PhpSettings + * Creates a plain object from a DotnetSettings message. Also converts values to other types if specified. + * @param message DotnetSettings * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.api.PhpSettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.api.DotnetSettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this PhpSettings to JSON. + * Converts this DotnetSettings to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for PhpSettings + * Gets the default type url for DotnetSettings * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a PythonSettings. */ - interface IPythonSettings { + /** Properties of a RubySettings. */ + interface IRubySettings { - /** PythonSettings common */ + /** RubySettings common */ common?: (google.api.ICommonLanguageSettings|null); - - /** PythonSettings experimentalFeatures */ - experimentalFeatures?: (google.api.PythonSettings.IExperimentalFeatures|null); } - /** Represents a PythonSettings. */ - class PythonSettings implements IPythonSettings { + /** Represents a RubySettings. */ + class RubySettings implements IRubySettings { /** - * Constructs a new PythonSettings. + * Constructs a new RubySettings. * @param [properties] Properties to set */ - constructor(properties?: google.api.IPythonSettings); + constructor(properties?: google.api.IRubySettings); - /** PythonSettings common. */ + /** RubySettings common. */ public common?: (google.api.ICommonLanguageSettings|null); - /** PythonSettings experimentalFeatures. */ - public experimentalFeatures?: (google.api.PythonSettings.IExperimentalFeatures|null); - /** - * Creates a new PythonSettings instance using the specified properties. + * Creates a new RubySettings instance using the specified properties. * @param [properties] Properties to set - * @returns PythonSettings instance + * @returns RubySettings instance */ - public static create(properties?: google.api.IPythonSettings): google.api.PythonSettings; + public static create(properties?: google.api.IRubySettings): google.api.RubySettings; /** - * Encodes the specified PythonSettings message. Does not implicitly {@link google.api.PythonSettings.verify|verify} messages. - * @param message PythonSettings message or plain object to encode + * Encodes the specified RubySettings message. Does not implicitly {@link google.api.RubySettings.verify|verify} messages. + * @param message RubySettings message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.api.IPythonSettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.api.IRubySettings, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified PythonSettings message, length delimited. Does not implicitly {@link google.api.PythonSettings.verify|verify} messages. - * @param message PythonSettings message or plain object to encode + * Encodes the specified RubySettings message, length delimited. Does not implicitly {@link google.api.RubySettings.verify|verify} messages. + * @param message RubySettings message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.api.IPythonSettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.api.IRubySettings, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a PythonSettings message from the specified reader or buffer. + * Decodes a RubySettings message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns PythonSettings + * @returns RubySettings * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.PythonSettings; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.RubySettings; /** - * Decodes a PythonSettings message from the specified reader or buffer, length delimited. + * Decodes a RubySettings message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns PythonSettings + * @returns RubySettings * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.PythonSettings; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.RubySettings; /** - * Verifies a PythonSettings message. + * Verifies a RubySettings message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a PythonSettings message from a plain object. Also converts values to their respective internal types. + * Creates a RubySettings message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns PythonSettings + * @returns RubySettings */ - public static fromObject(object: { [k: string]: any }): google.api.PythonSettings; + public static fromObject(object: { [k: string]: any }): google.api.RubySettings; /** - * Creates a plain object from a PythonSettings message. Also converts values to other types if specified. - * @param message PythonSettings + * Creates a plain object from a RubySettings message. Also converts values to other types if specified. + * @param message RubySettings * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.api.PythonSettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.api.RubySettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this PythonSettings to JSON. + * Converts this RubySettings to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for PythonSettings + * Gets the default type url for RubySettings * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - namespace PythonSettings { - - /** Properties of an ExperimentalFeatures. */ - interface IExperimentalFeatures { - - /** ExperimentalFeatures restAsyncIoEnabled */ - restAsyncIoEnabled?: (boolean|null); - - /** ExperimentalFeatures protobufPythonicTypesEnabled */ - protobufPythonicTypesEnabled?: (boolean|null); - - /** ExperimentalFeatures unversionedPackageDisabled */ - unversionedPackageDisabled?: (boolean|null); - } - - /** Represents an ExperimentalFeatures. */ - class ExperimentalFeatures implements IExperimentalFeatures { - - /** - * Constructs a new ExperimentalFeatures. - * @param [properties] Properties to set - */ - constructor(properties?: google.api.PythonSettings.IExperimentalFeatures); - - /** ExperimentalFeatures restAsyncIoEnabled. */ - public restAsyncIoEnabled: boolean; - - /** ExperimentalFeatures protobufPythonicTypesEnabled. */ - public protobufPythonicTypesEnabled: boolean; - - /** ExperimentalFeatures unversionedPackageDisabled. */ - public unversionedPackageDisabled: boolean; - - /** - * Creates a new ExperimentalFeatures instance using the specified properties. - * @param [properties] Properties to set - * @returns ExperimentalFeatures instance - */ - public static create(properties?: google.api.PythonSettings.IExperimentalFeatures): google.api.PythonSettings.ExperimentalFeatures; - - /** - * Encodes the specified ExperimentalFeatures message. Does not implicitly {@link google.api.PythonSettings.ExperimentalFeatures.verify|verify} messages. - * @param message ExperimentalFeatures message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.api.PythonSettings.IExperimentalFeatures, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified ExperimentalFeatures message, length delimited. Does not implicitly {@link google.api.PythonSettings.ExperimentalFeatures.verify|verify} messages. - * @param message ExperimentalFeatures message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.api.PythonSettings.IExperimentalFeatures, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes an ExperimentalFeatures message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns ExperimentalFeatures - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.PythonSettings.ExperimentalFeatures; - - /** - * Decodes an ExperimentalFeatures message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns ExperimentalFeatures - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.PythonSettings.ExperimentalFeatures; - - /** - * Verifies an ExperimentalFeatures message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates an ExperimentalFeatures message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns ExperimentalFeatures - */ - public static fromObject(object: { [k: string]: any }): google.api.PythonSettings.ExperimentalFeatures; - - /** - * Creates a plain object from an ExperimentalFeatures message. Also converts values to other types if specified. - * @param message ExperimentalFeatures - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.api.PythonSettings.ExperimentalFeatures, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this ExperimentalFeatures to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for ExperimentalFeatures - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - } - - /** Properties of a NodeSettings. */ - interface INodeSettings { + /** Properties of a GoSettings. */ + interface IGoSettings { - /** NodeSettings common */ + /** GoSettings common */ common?: (google.api.ICommonLanguageSettings|null); + + /** GoSettings renamedServices */ + renamedServices?: ({ [k: string]: string }|null); } - /** Represents a NodeSettings. */ - class NodeSettings implements INodeSettings { + /** Represents a GoSettings. */ + class GoSettings implements IGoSettings { /** - * Constructs a new NodeSettings. + * Constructs a new GoSettings. * @param [properties] Properties to set */ - constructor(properties?: google.api.INodeSettings); + constructor(properties?: google.api.IGoSettings); - /** NodeSettings common. */ + /** GoSettings common. */ public common?: (google.api.ICommonLanguageSettings|null); + /** GoSettings renamedServices. */ + public renamedServices: { [k: string]: string }; + /** - * Creates a new NodeSettings instance using the specified properties. + * Creates a new GoSettings instance using the specified properties. * @param [properties] Properties to set - * @returns NodeSettings instance + * @returns GoSettings instance */ - public static create(properties?: google.api.INodeSettings): google.api.NodeSettings; + public static create(properties?: google.api.IGoSettings): google.api.GoSettings; /** - * Encodes the specified NodeSettings message. Does not implicitly {@link google.api.NodeSettings.verify|verify} messages. - * @param message NodeSettings message or plain object to encode + * Encodes the specified GoSettings message. Does not implicitly {@link google.api.GoSettings.verify|verify} messages. + * @param message GoSettings message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.api.INodeSettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.api.IGoSettings, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified NodeSettings message, length delimited. Does not implicitly {@link google.api.NodeSettings.verify|verify} messages. - * @param message NodeSettings message or plain object to encode + * Encodes the specified GoSettings message, length delimited. Does not implicitly {@link google.api.GoSettings.verify|verify} messages. + * @param message GoSettings message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.api.INodeSettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.api.IGoSettings, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a NodeSettings message from the specified reader or buffer. + * Decodes a GoSettings message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns NodeSettings + * @returns GoSettings * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.NodeSettings; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.GoSettings; /** - * Decodes a NodeSettings message from the specified reader or buffer, length delimited. + * Decodes a GoSettings message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns NodeSettings + * @returns GoSettings * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.NodeSettings; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.GoSettings; /** - * Verifies a NodeSettings message. + * Verifies a GoSettings message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a NodeSettings message from a plain object. Also converts values to their respective internal types. + * Creates a GoSettings message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns NodeSettings + * @returns GoSettings */ - public static fromObject(object: { [k: string]: any }): google.api.NodeSettings; + public static fromObject(object: { [k: string]: any }): google.api.GoSettings; /** - * Creates a plain object from a NodeSettings message. Also converts values to other types if specified. - * @param message NodeSettings + * Creates a plain object from a GoSettings message. Also converts values to other types if specified. + * @param message GoSettings * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.api.NodeSettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.api.GoSettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this NodeSettings to JSON. + * Converts this GoSettings to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for NodeSettings + * Gets the default type url for GoSettings * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a DotnetSettings. */ - interface IDotnetSettings { - - /** DotnetSettings common */ - common?: (google.api.ICommonLanguageSettings|null); - - /** DotnetSettings renamedServices */ - renamedServices?: ({ [k: string]: string }|null); + /** Properties of a MethodSettings. */ + interface IMethodSettings { - /** DotnetSettings renamedResources */ - renamedResources?: ({ [k: string]: string }|null); + /** MethodSettings selector */ + selector?: (string|null); - /** DotnetSettings ignoredResources */ - ignoredResources?: (string[]|null); + /** MethodSettings longRunning */ + longRunning?: (google.api.MethodSettings.ILongRunning|null); - /** DotnetSettings forcedNamespaceAliases */ - forcedNamespaceAliases?: (string[]|null); + /** MethodSettings autoPopulatedFields */ + autoPopulatedFields?: (string[]|null); - /** DotnetSettings handwrittenSignatures */ - handwrittenSignatures?: (string[]|null); + /** MethodSettings batching */ + batching?: (google.api.IBatchingConfigProto|null); } - /** Represents a DotnetSettings. */ - class DotnetSettings implements IDotnetSettings { + /** Represents a MethodSettings. */ + class MethodSettings implements IMethodSettings { /** - * Constructs a new DotnetSettings. + * Constructs a new MethodSettings. * @param [properties] Properties to set */ - constructor(properties?: google.api.IDotnetSettings); - - /** DotnetSettings common. */ - public common?: (google.api.ICommonLanguageSettings|null); - - /** DotnetSettings renamedServices. */ - public renamedServices: { [k: string]: string }; + constructor(properties?: google.api.IMethodSettings); - /** DotnetSettings renamedResources. */ - public renamedResources: { [k: string]: string }; + /** MethodSettings selector. */ + public selector: string; - /** DotnetSettings ignoredResources. */ - public ignoredResources: string[]; + /** MethodSettings longRunning. */ + public longRunning?: (google.api.MethodSettings.ILongRunning|null); - /** DotnetSettings forcedNamespaceAliases. */ - public forcedNamespaceAliases: string[]; + /** MethodSettings autoPopulatedFields. */ + public autoPopulatedFields: string[]; - /** DotnetSettings handwrittenSignatures. */ - public handwrittenSignatures: string[]; + /** MethodSettings batching. */ + public batching?: (google.api.IBatchingConfigProto|null); /** - * Creates a new DotnetSettings instance using the specified properties. + * Creates a new MethodSettings instance using the specified properties. * @param [properties] Properties to set - * @returns DotnetSettings instance + * @returns MethodSettings instance */ - public static create(properties?: google.api.IDotnetSettings): google.api.DotnetSettings; + public static create(properties?: google.api.IMethodSettings): google.api.MethodSettings; /** - * Encodes the specified DotnetSettings message. Does not implicitly {@link google.api.DotnetSettings.verify|verify} messages. - * @param message DotnetSettings message or plain object to encode + * Encodes the specified MethodSettings message. Does not implicitly {@link google.api.MethodSettings.verify|verify} messages. + * @param message MethodSettings message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.api.IDotnetSettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.api.IMethodSettings, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified DotnetSettings message, length delimited. Does not implicitly {@link google.api.DotnetSettings.verify|verify} messages. - * @param message DotnetSettings message or plain object to encode + * Encodes the specified MethodSettings message, length delimited. Does not implicitly {@link google.api.MethodSettings.verify|verify} messages. + * @param message MethodSettings message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.api.IDotnetSettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.api.IMethodSettings, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a MethodSettings message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MethodSettings + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.MethodSettings; + + /** + * Decodes a MethodSettings message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns MethodSettings + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.MethodSettings; + + /** + * Verifies a MethodSettings message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a MethodSettings message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns MethodSettings + */ + public static fromObject(object: { [k: string]: any }): google.api.MethodSettings; + + /** + * Creates a plain object from a MethodSettings message. Also converts values to other types if specified. + * @param message MethodSettings + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.api.MethodSettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this MethodSettings to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for MethodSettings + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace MethodSettings { + + /** Properties of a LongRunning. */ + interface ILongRunning { + + /** LongRunning initialPollDelay */ + initialPollDelay?: (google.protobuf.IDuration|null); + + /** LongRunning pollDelayMultiplier */ + pollDelayMultiplier?: (number|null); + + /** LongRunning maxPollDelay */ + maxPollDelay?: (google.protobuf.IDuration|null); + + /** LongRunning totalPollTimeout */ + totalPollTimeout?: (google.protobuf.IDuration|null); + } + + /** Represents a LongRunning. */ + class LongRunning implements ILongRunning { + + /** + * Constructs a new LongRunning. + * @param [properties] Properties to set + */ + constructor(properties?: google.api.MethodSettings.ILongRunning); + + /** LongRunning initialPollDelay. */ + public initialPollDelay?: (google.protobuf.IDuration|null); + + /** LongRunning pollDelayMultiplier. */ + public pollDelayMultiplier: number; + + /** LongRunning maxPollDelay. */ + public maxPollDelay?: (google.protobuf.IDuration|null); + + /** LongRunning totalPollTimeout. */ + public totalPollTimeout?: (google.protobuf.IDuration|null); + + /** + * Creates a new LongRunning instance using the specified properties. + * @param [properties] Properties to set + * @returns LongRunning instance + */ + public static create(properties?: google.api.MethodSettings.ILongRunning): google.api.MethodSettings.LongRunning; + + /** + * Encodes the specified LongRunning message. Does not implicitly {@link google.api.MethodSettings.LongRunning.verify|verify} messages. + * @param message LongRunning message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.api.MethodSettings.ILongRunning, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified LongRunning message, length delimited. Does not implicitly {@link google.api.MethodSettings.LongRunning.verify|verify} messages. + * @param message LongRunning message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.api.MethodSettings.ILongRunning, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a LongRunning message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns LongRunning + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.MethodSettings.LongRunning; + + /** + * Decodes a LongRunning message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns LongRunning + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.MethodSettings.LongRunning; - /** - * Decodes a DotnetSettings message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns DotnetSettings - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.DotnetSettings; + /** + * Verifies a LongRunning message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); - /** - * Decodes a DotnetSettings message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns DotnetSettings - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.DotnetSettings; + /** + * Creates a LongRunning message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns LongRunning + */ + public static fromObject(object: { [k: string]: any }): google.api.MethodSettings.LongRunning; - /** - * Verifies a DotnetSettings message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); + /** + * Creates a plain object from a LongRunning message. Also converts values to other types if specified. + * @param message LongRunning + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.api.MethodSettings.LongRunning, options?: $protobuf.IConversionOptions): { [k: string]: any }; - /** - * Creates a DotnetSettings message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns DotnetSettings - */ - public static fromObject(object: { [k: string]: any }): google.api.DotnetSettings; + /** + * Converts this LongRunning to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; - /** - * Creates a plain object from a DotnetSettings message. Also converts values to other types if specified. - * @param message DotnetSettings - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.api.DotnetSettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; + /** + * Gets the default type url for LongRunning + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + } - /** - * Converts this DotnetSettings to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; + /** ClientLibraryOrganization enum. */ + enum ClientLibraryOrganization { + CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED = 0, + CLOUD = 1, + ADS = 2, + PHOTOS = 3, + STREET_VIEW = 4, + SHOPPING = 5, + GEO = 6, + GENERATIVE_AI = 7 + } - /** - * Gets the default type url for DotnetSettings - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; + /** ClientLibraryDestination enum. */ + enum ClientLibraryDestination { + CLIENT_LIBRARY_DESTINATION_UNSPECIFIED = 0, + GITHUB = 10, + PACKAGE_MANAGER = 20 } - /** Properties of a RubySettings. */ - interface IRubySettings { + /** Properties of a SelectiveGapicGeneration. */ + interface ISelectiveGapicGeneration { - /** RubySettings common */ - common?: (google.api.ICommonLanguageSettings|null); + /** SelectiveGapicGeneration methods */ + methods?: (string[]|null); + + /** SelectiveGapicGeneration generateOmittedAsInternal */ + generateOmittedAsInternal?: (boolean|null); } - /** Represents a RubySettings. */ - class RubySettings implements IRubySettings { + /** Represents a SelectiveGapicGeneration. */ + class SelectiveGapicGeneration implements ISelectiveGapicGeneration { /** - * Constructs a new RubySettings. + * Constructs a new SelectiveGapicGeneration. * @param [properties] Properties to set */ - constructor(properties?: google.api.IRubySettings); + constructor(properties?: google.api.ISelectiveGapicGeneration); - /** RubySettings common. */ - public common?: (google.api.ICommonLanguageSettings|null); + /** SelectiveGapicGeneration methods. */ + public methods: string[]; + + /** SelectiveGapicGeneration generateOmittedAsInternal. */ + public generateOmittedAsInternal: boolean; /** - * Creates a new RubySettings instance using the specified properties. + * Creates a new SelectiveGapicGeneration instance using the specified properties. * @param [properties] Properties to set - * @returns RubySettings instance + * @returns SelectiveGapicGeneration instance */ - public static create(properties?: google.api.IRubySettings): google.api.RubySettings; + public static create(properties?: google.api.ISelectiveGapicGeneration): google.api.SelectiveGapicGeneration; /** - * Encodes the specified RubySettings message. Does not implicitly {@link google.api.RubySettings.verify|verify} messages. - * @param message RubySettings message or plain object to encode + * Encodes the specified SelectiveGapicGeneration message. Does not implicitly {@link google.api.SelectiveGapicGeneration.verify|verify} messages. + * @param message SelectiveGapicGeneration message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.api.IRubySettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.api.ISelectiveGapicGeneration, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified RubySettings message, length delimited. Does not implicitly {@link google.api.RubySettings.verify|verify} messages. - * @param message RubySettings message or plain object to encode + * Encodes the specified SelectiveGapicGeneration message, length delimited. Does not implicitly {@link google.api.SelectiveGapicGeneration.verify|verify} messages. + * @param message SelectiveGapicGeneration message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.api.IRubySettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.api.ISelectiveGapicGeneration, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a RubySettings message from the specified reader or buffer. + * Decodes a SelectiveGapicGeneration message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns RubySettings + * @returns SelectiveGapicGeneration * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.RubySettings; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.SelectiveGapicGeneration; /** - * Decodes a RubySettings message from the specified reader or buffer, length delimited. + * Decodes a SelectiveGapicGeneration message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns RubySettings + * @returns SelectiveGapicGeneration * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.RubySettings; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.SelectiveGapicGeneration; /** - * Verifies a RubySettings message. + * Verifies a SelectiveGapicGeneration message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a RubySettings message from a plain object. Also converts values to their respective internal types. + * Creates a SelectiveGapicGeneration message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns RubySettings + * @returns SelectiveGapicGeneration */ - public static fromObject(object: { [k: string]: any }): google.api.RubySettings; + public static fromObject(object: { [k: string]: any }): google.api.SelectiveGapicGeneration; /** - * Creates a plain object from a RubySettings message. Also converts values to other types if specified. - * @param message RubySettings + * Creates a plain object from a SelectiveGapicGeneration message. Also converts values to other types if specified. + * @param message SelectiveGapicGeneration * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.api.RubySettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.api.SelectiveGapicGeneration, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this RubySettings to JSON. + * Converts this SelectiveGapicGeneration to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for RubySettings + * Gets the default type url for SelectiveGapicGeneration * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a GoSettings. */ - interface IGoSettings { + /** Properties of a BatchingConfigProto. */ + interface IBatchingConfigProto { - /** GoSettings common */ - common?: (google.api.ICommonLanguageSettings|null); + /** BatchingConfigProto thresholds */ + thresholds?: (google.api.IBatchingSettingsProto|null); - /** GoSettings renamedServices */ - renamedServices?: ({ [k: string]: string }|null); + /** BatchingConfigProto batchDescriptor */ + batchDescriptor?: (google.api.IBatchingDescriptorProto|null); } - /** Represents a GoSettings. */ - class GoSettings implements IGoSettings { + /** Represents a BatchingConfigProto. */ + class BatchingConfigProto implements IBatchingConfigProto { /** - * Constructs a new GoSettings. + * Constructs a new BatchingConfigProto. * @param [properties] Properties to set */ - constructor(properties?: google.api.IGoSettings); + constructor(properties?: google.api.IBatchingConfigProto); - /** GoSettings common. */ - public common?: (google.api.ICommonLanguageSettings|null); + /** BatchingConfigProto thresholds. */ + public thresholds?: (google.api.IBatchingSettingsProto|null); - /** GoSettings renamedServices. */ - public renamedServices: { [k: string]: string }; + /** BatchingConfigProto batchDescriptor. */ + public batchDescriptor?: (google.api.IBatchingDescriptorProto|null); /** - * Creates a new GoSettings instance using the specified properties. + * Creates a new BatchingConfigProto instance using the specified properties. * @param [properties] Properties to set - * @returns GoSettings instance + * @returns BatchingConfigProto instance */ - public static create(properties?: google.api.IGoSettings): google.api.GoSettings; + public static create(properties?: google.api.IBatchingConfigProto): google.api.BatchingConfigProto; /** - * Encodes the specified GoSettings message. Does not implicitly {@link google.api.GoSettings.verify|verify} messages. - * @param message GoSettings message or plain object to encode + * Encodes the specified BatchingConfigProto message. Does not implicitly {@link google.api.BatchingConfigProto.verify|verify} messages. + * @param message BatchingConfigProto message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.api.IGoSettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.api.IBatchingConfigProto, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified GoSettings message, length delimited. Does not implicitly {@link google.api.GoSettings.verify|verify} messages. - * @param message GoSettings message or plain object to encode + * Encodes the specified BatchingConfigProto message, length delimited. Does not implicitly {@link google.api.BatchingConfigProto.verify|verify} messages. + * @param message BatchingConfigProto message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.api.IGoSettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.api.IBatchingConfigProto, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a GoSettings message from the specified reader or buffer. + * Decodes a BatchingConfigProto message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns GoSettings + * @returns BatchingConfigProto * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.GoSettings; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.BatchingConfigProto; /** - * Decodes a GoSettings message from the specified reader or buffer, length delimited. + * Decodes a BatchingConfigProto message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns GoSettings + * @returns BatchingConfigProto * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.GoSettings; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.BatchingConfigProto; /** - * Verifies a GoSettings message. + * Verifies a BatchingConfigProto message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a GoSettings message from a plain object. Also converts values to their respective internal types. + * Creates a BatchingConfigProto message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns GoSettings + * @returns BatchingConfigProto */ - public static fromObject(object: { [k: string]: any }): google.api.GoSettings; + public static fromObject(object: { [k: string]: any }): google.api.BatchingConfigProto; /** - * Creates a plain object from a GoSettings message. Also converts values to other types if specified. - * @param message GoSettings + * Creates a plain object from a BatchingConfigProto message. Also converts values to other types if specified. + * @param message BatchingConfigProto * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.api.GoSettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.api.BatchingConfigProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this GoSettings to JSON. + * Converts this BatchingConfigProto to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for GoSettings + * Gets the default type url for BatchingConfigProto * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a MethodSettings. */ - interface IMethodSettings { + /** Properties of a BatchingSettingsProto. */ + interface IBatchingSettingsProto { - /** MethodSettings selector */ - selector?: (string|null); + /** BatchingSettingsProto elementCountThreshold */ + elementCountThreshold?: (number|null); - /** MethodSettings longRunning */ - longRunning?: (google.api.MethodSettings.ILongRunning|null); + /** BatchingSettingsProto requestByteThreshold */ + requestByteThreshold?: (number|Long|string|null); - /** MethodSettings autoPopulatedFields */ - autoPopulatedFields?: (string[]|null); + /** BatchingSettingsProto delayThreshold */ + delayThreshold?: (google.protobuf.IDuration|null); + + /** BatchingSettingsProto elementCountLimit */ + elementCountLimit?: (number|null); + + /** BatchingSettingsProto requestByteLimit */ + requestByteLimit?: (number|null); + + /** BatchingSettingsProto flowControlElementLimit */ + flowControlElementLimit?: (number|null); + + /** BatchingSettingsProto flowControlByteLimit */ + flowControlByteLimit?: (number|null); + + /** BatchingSettingsProto flowControlLimitExceededBehavior */ + flowControlLimitExceededBehavior?: (google.api.FlowControlLimitExceededBehaviorProto|keyof typeof google.api.FlowControlLimitExceededBehaviorProto|null); } - /** Represents a MethodSettings. */ - class MethodSettings implements IMethodSettings { + /** Represents a BatchingSettingsProto. */ + class BatchingSettingsProto implements IBatchingSettingsProto { /** - * Constructs a new MethodSettings. + * Constructs a new BatchingSettingsProto. * @param [properties] Properties to set */ - constructor(properties?: google.api.IMethodSettings); + constructor(properties?: google.api.IBatchingSettingsProto); - /** MethodSettings selector. */ - public selector: string; + /** BatchingSettingsProto elementCountThreshold. */ + public elementCountThreshold: number; - /** MethodSettings longRunning. */ - public longRunning?: (google.api.MethodSettings.ILongRunning|null); + /** BatchingSettingsProto requestByteThreshold. */ + public requestByteThreshold: (number|Long|string); - /** MethodSettings autoPopulatedFields. */ - public autoPopulatedFields: string[]; + /** BatchingSettingsProto delayThreshold. */ + public delayThreshold?: (google.protobuf.IDuration|null); + + /** BatchingSettingsProto elementCountLimit. */ + public elementCountLimit: number; + + /** BatchingSettingsProto requestByteLimit. */ + public requestByteLimit: number; + + /** BatchingSettingsProto flowControlElementLimit. */ + public flowControlElementLimit: number; + + /** BatchingSettingsProto flowControlByteLimit. */ + public flowControlByteLimit: number; + + /** BatchingSettingsProto flowControlLimitExceededBehavior. */ + public flowControlLimitExceededBehavior: (google.api.FlowControlLimitExceededBehaviorProto|keyof typeof google.api.FlowControlLimitExceededBehaviorProto); /** - * Creates a new MethodSettings instance using the specified properties. + * Creates a new BatchingSettingsProto instance using the specified properties. * @param [properties] Properties to set - * @returns MethodSettings instance + * @returns BatchingSettingsProto instance */ - public static create(properties?: google.api.IMethodSettings): google.api.MethodSettings; + public static create(properties?: google.api.IBatchingSettingsProto): google.api.BatchingSettingsProto; /** - * Encodes the specified MethodSettings message. Does not implicitly {@link google.api.MethodSettings.verify|verify} messages. - * @param message MethodSettings message or plain object to encode + * Encodes the specified BatchingSettingsProto message. Does not implicitly {@link google.api.BatchingSettingsProto.verify|verify} messages. + * @param message BatchingSettingsProto message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.api.IMethodSettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.api.IBatchingSettingsProto, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified MethodSettings message, length delimited. Does not implicitly {@link google.api.MethodSettings.verify|verify} messages. - * @param message MethodSettings message or plain object to encode + * Encodes the specified BatchingSettingsProto message, length delimited. Does not implicitly {@link google.api.BatchingSettingsProto.verify|verify} messages. + * @param message BatchingSettingsProto message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.api.IMethodSettings, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.api.IBatchingSettingsProto, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a MethodSettings message from the specified reader or buffer. + * Decodes a BatchingSettingsProto message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns MethodSettings + * @returns BatchingSettingsProto * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.MethodSettings; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.BatchingSettingsProto; /** - * Decodes a MethodSettings message from the specified reader or buffer, length delimited. + * Decodes a BatchingSettingsProto message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns MethodSettings + * @returns BatchingSettingsProto * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.MethodSettings; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.BatchingSettingsProto; /** - * Verifies a MethodSettings message. + * Verifies a BatchingSettingsProto message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a MethodSettings message from a plain object. Also converts values to their respective internal types. + * Creates a BatchingSettingsProto message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns MethodSettings + * @returns BatchingSettingsProto */ - public static fromObject(object: { [k: string]: any }): google.api.MethodSettings; + public static fromObject(object: { [k: string]: any }): google.api.BatchingSettingsProto; /** - * Creates a plain object from a MethodSettings message. Also converts values to other types if specified. - * @param message MethodSettings + * Creates a plain object from a BatchingSettingsProto message. Also converts values to other types if specified. + * @param message BatchingSettingsProto * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.api.MethodSettings, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.api.BatchingSettingsProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this MethodSettings to JSON. + * Converts this BatchingSettingsProto to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for MethodSettings + * Gets the default type url for BatchingSettingsProto * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - namespace MethodSettings { - - /** Properties of a LongRunning. */ - interface ILongRunning { - - /** LongRunning initialPollDelay */ - initialPollDelay?: (google.protobuf.IDuration|null); - - /** LongRunning pollDelayMultiplier */ - pollDelayMultiplier?: (number|null); - - /** LongRunning maxPollDelay */ - maxPollDelay?: (google.protobuf.IDuration|null); - - /** LongRunning totalPollTimeout */ - totalPollTimeout?: (google.protobuf.IDuration|null); - } - - /** Represents a LongRunning. */ - class LongRunning implements ILongRunning { - - /** - * Constructs a new LongRunning. - * @param [properties] Properties to set - */ - constructor(properties?: google.api.MethodSettings.ILongRunning); - - /** LongRunning initialPollDelay. */ - public initialPollDelay?: (google.protobuf.IDuration|null); - - /** LongRunning pollDelayMultiplier. */ - public pollDelayMultiplier: number; - - /** LongRunning maxPollDelay. */ - public maxPollDelay?: (google.protobuf.IDuration|null); - - /** LongRunning totalPollTimeout. */ - public totalPollTimeout?: (google.protobuf.IDuration|null); - - /** - * Creates a new LongRunning instance using the specified properties. - * @param [properties] Properties to set - * @returns LongRunning instance - */ - public static create(properties?: google.api.MethodSettings.ILongRunning): google.api.MethodSettings.LongRunning; - - /** - * Encodes the specified LongRunning message. Does not implicitly {@link google.api.MethodSettings.LongRunning.verify|verify} messages. - * @param message LongRunning message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: google.api.MethodSettings.ILongRunning, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified LongRunning message, length delimited. Does not implicitly {@link google.api.MethodSettings.LongRunning.verify|verify} messages. - * @param message LongRunning message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: google.api.MethodSettings.ILongRunning, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a LongRunning message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns LongRunning - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.MethodSettings.LongRunning; - - /** - * Decodes a LongRunning message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns LongRunning - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.MethodSettings.LongRunning; - - /** - * Verifies a LongRunning message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a LongRunning message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns LongRunning - */ - public static fromObject(object: { [k: string]: any }): google.api.MethodSettings.LongRunning; - - /** - * Creates a plain object from a LongRunning message. Also converts values to other types if specified. - * @param message LongRunning - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: google.api.MethodSettings.LongRunning, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this LongRunning to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for LongRunning - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - } - - /** ClientLibraryOrganization enum. */ - enum ClientLibraryOrganization { - CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED = 0, - CLOUD = 1, - ADS = 2, - PHOTOS = 3, - STREET_VIEW = 4, - SHOPPING = 5, - GEO = 6, - GENERATIVE_AI = 7 + /** FlowControlLimitExceededBehaviorProto enum. */ + enum FlowControlLimitExceededBehaviorProto { + UNSET_BEHAVIOR = 0, + THROW_EXCEPTION = 1, + BLOCK = 2, + IGNORE = 3 } - /** ClientLibraryDestination enum. */ - enum ClientLibraryDestination { - CLIENT_LIBRARY_DESTINATION_UNSPECIFIED = 0, - GITHUB = 10, - PACKAGE_MANAGER = 20 - } + /** Properties of a BatchingDescriptorProto. */ + interface IBatchingDescriptorProto { - /** Properties of a SelectiveGapicGeneration. */ - interface ISelectiveGapicGeneration { + /** BatchingDescriptorProto batchedField */ + batchedField?: (string|null); - /** SelectiveGapicGeneration methods */ - methods?: (string[]|null); + /** BatchingDescriptorProto discriminatorFields */ + discriminatorFields?: (string[]|null); - /** SelectiveGapicGeneration generateOmittedAsInternal */ - generateOmittedAsInternal?: (boolean|null); + /** BatchingDescriptorProto subresponseField */ + subresponseField?: (string|null); } - /** Represents a SelectiveGapicGeneration. */ - class SelectiveGapicGeneration implements ISelectiveGapicGeneration { + /** Represents a BatchingDescriptorProto. */ + class BatchingDescriptorProto implements IBatchingDescriptorProto { /** - * Constructs a new SelectiveGapicGeneration. + * Constructs a new BatchingDescriptorProto. * @param [properties] Properties to set */ - constructor(properties?: google.api.ISelectiveGapicGeneration); + constructor(properties?: google.api.IBatchingDescriptorProto); - /** SelectiveGapicGeneration methods. */ - public methods: string[]; + /** BatchingDescriptorProto batchedField. */ + public batchedField: string; - /** SelectiveGapicGeneration generateOmittedAsInternal. */ - public generateOmittedAsInternal: boolean; + /** BatchingDescriptorProto discriminatorFields. */ + public discriminatorFields: string[]; + + /** BatchingDescriptorProto subresponseField. */ + public subresponseField: string; /** - * Creates a new SelectiveGapicGeneration instance using the specified properties. + * Creates a new BatchingDescriptorProto instance using the specified properties. * @param [properties] Properties to set - * @returns SelectiveGapicGeneration instance + * @returns BatchingDescriptorProto instance */ - public static create(properties?: google.api.ISelectiveGapicGeneration): google.api.SelectiveGapicGeneration; + public static create(properties?: google.api.IBatchingDescriptorProto): google.api.BatchingDescriptorProto; /** - * Encodes the specified SelectiveGapicGeneration message. Does not implicitly {@link google.api.SelectiveGapicGeneration.verify|verify} messages. - * @param message SelectiveGapicGeneration message or plain object to encode + * Encodes the specified BatchingDescriptorProto message. Does not implicitly {@link google.api.BatchingDescriptorProto.verify|verify} messages. + * @param message BatchingDescriptorProto message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.api.ISelectiveGapicGeneration, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.api.IBatchingDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified SelectiveGapicGeneration message, length delimited. Does not implicitly {@link google.api.SelectiveGapicGeneration.verify|verify} messages. - * @param message SelectiveGapicGeneration message or plain object to encode + * Encodes the specified BatchingDescriptorProto message, length delimited. Does not implicitly {@link google.api.BatchingDescriptorProto.verify|verify} messages. + * @param message BatchingDescriptorProto message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.api.ISelectiveGapicGeneration, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.api.IBatchingDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a SelectiveGapicGeneration message from the specified reader or buffer. + * Decodes a BatchingDescriptorProto message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns SelectiveGapicGeneration + * @returns BatchingDescriptorProto * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.SelectiveGapicGeneration; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.BatchingDescriptorProto; /** - * Decodes a SelectiveGapicGeneration message from the specified reader or buffer, length delimited. + * Decodes a BatchingDescriptorProto message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns SelectiveGapicGeneration + * @returns BatchingDescriptorProto * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.SelectiveGapicGeneration; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.BatchingDescriptorProto; /** - * Verifies a SelectiveGapicGeneration message. + * Verifies a BatchingDescriptorProto message. * @param message Plain object to verify * @returns `null` if valid, otherwise the reason why it is not */ public static verify(message: { [k: string]: any }): (string|null); /** - * Creates a SelectiveGapicGeneration message from a plain object. Also converts values to their respective internal types. + * Creates a BatchingDescriptorProto message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns SelectiveGapicGeneration + * @returns BatchingDescriptorProto */ - public static fromObject(object: { [k: string]: any }): google.api.SelectiveGapicGeneration; + public static fromObject(object: { [k: string]: any }): google.api.BatchingDescriptorProto; /** - * Creates a plain object from a SelectiveGapicGeneration message. Also converts values to other types if specified. - * @param message SelectiveGapicGeneration + * Creates a plain object from a BatchingDescriptorProto message. Also converts values to other types if specified. + * @param message BatchingDescriptorProto * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.api.SelectiveGapicGeneration, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.api.BatchingDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this SelectiveGapicGeneration to JSON. + * Converts this BatchingDescriptorProto to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for SelectiveGapicGeneration + * Gets the default type url for BatchingDescriptorProto * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ @@ -28455,6 +22012,8 @@ export namespace google { EDITION_PROTO3 = 999, EDITION_2023 = 1000, EDITION_2024 = 1001, + EDITION_2026 = 1002, + EDITION_UNSTABLE = 9999, EDITION_1_TEST_ONLY = 1, EDITION_2_TEST_ONLY = 2, EDITION_99997_TEST_ONLY = 99997, @@ -30826,6 +24385,9 @@ export namespace google { /** FeatureSupport editionRemoved */ editionRemoved?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null); + + /** FeatureSupport removalError */ + removalError?: (string|null); } /** Represents a FeatureSupport. */ @@ -30849,6 +24411,9 @@ export namespace google { /** FeatureSupport editionRemoved. */ public editionRemoved: (google.protobuf.Edition|keyof typeof google.protobuf.Edition); + /** FeatureSupport removalError. */ + public removalError: string; + /** * Creates a new FeatureSupport instance using the specified properties. * @param [properties] Properties to set @@ -31793,6 +25358,9 @@ export namespace google { /** FeatureSet defaultSymbolVisibility */ defaultSymbolVisibility?: (google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility|keyof typeof google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility|null); + + /** FeatureSet enforceProtoLimits */ + enforceProtoLimits?: (google.protobuf.FeatureSet.ProtoLimitsFeature.EnforceProtoLimits|keyof typeof google.protobuf.FeatureSet.ProtoLimitsFeature.EnforceProtoLimits|null); } /** Represents a FeatureSet. */ @@ -31828,6 +25396,9 @@ export namespace google { /** FeatureSet defaultSymbolVisibility. */ public defaultSymbolVisibility: (google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility|keyof typeof google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility); + /** FeatureSet enforceProtoLimits. */ + public enforceProtoLimits: (google.protobuf.FeatureSet.ProtoLimitsFeature.EnforceProtoLimits|keyof typeof google.protobuf.FeatureSet.ProtoLimitsFeature.EnforceProtoLimits); + /** * Creates a new FeatureSet instance using the specified properties. * @param [properties] Properties to set @@ -31955,7 +25526,8 @@ export namespace google { enum EnforceNamingStyle { ENFORCE_NAMING_STYLE_UNKNOWN = 0, STYLE2024 = 1, - STYLE_LEGACY = 2 + STYLE_LEGACY = 2, + STYLE2026 = 3 } /** Properties of a VisibilityFeature. */ @@ -32060,6 +25632,107 @@ export namespace google { STRICT = 4 } } + + /** Properties of a ProtoLimitsFeature. */ + interface IProtoLimitsFeature { + } + + /** Represents a ProtoLimitsFeature. */ + class ProtoLimitsFeature implements IProtoLimitsFeature { + + /** + * Constructs a new ProtoLimitsFeature. + * @param [properties] Properties to set + */ + constructor(properties?: google.protobuf.FeatureSet.IProtoLimitsFeature); + + /** + * Creates a new ProtoLimitsFeature instance using the specified properties. + * @param [properties] Properties to set + * @returns ProtoLimitsFeature instance + */ + public static create(properties?: google.protobuf.FeatureSet.IProtoLimitsFeature): google.protobuf.FeatureSet.ProtoLimitsFeature; + + /** + * Encodes the specified ProtoLimitsFeature message. Does not implicitly {@link google.protobuf.FeatureSet.ProtoLimitsFeature.verify|verify} messages. + * @param message ProtoLimitsFeature message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.protobuf.FeatureSet.IProtoLimitsFeature, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ProtoLimitsFeature message, length delimited. Does not implicitly {@link google.protobuf.FeatureSet.ProtoLimitsFeature.verify|verify} messages. + * @param message ProtoLimitsFeature message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.protobuf.FeatureSet.IProtoLimitsFeature, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ProtoLimitsFeature message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ProtoLimitsFeature + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FeatureSet.ProtoLimitsFeature; + + /** + * Decodes a ProtoLimitsFeature message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ProtoLimitsFeature + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FeatureSet.ProtoLimitsFeature; + + /** + * Verifies a ProtoLimitsFeature message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ProtoLimitsFeature message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ProtoLimitsFeature + */ + public static fromObject(object: { [k: string]: any }): google.protobuf.FeatureSet.ProtoLimitsFeature; + + /** + * Creates a plain object from a ProtoLimitsFeature message. Also converts values to other types if specified. + * @param message ProtoLimitsFeature + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.protobuf.FeatureSet.ProtoLimitsFeature, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ProtoLimitsFeature to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ProtoLimitsFeature + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace ProtoLimitsFeature { + + /** EnforceProtoLimits enum. */ + enum EnforceProtoLimits { + PROTO_LIMITS_UNKNOWN = 0, + LEGACY_NO_EXPLICIT_LIMITS = 1, + PROTO_LIMITS2026 = 2 + } + } } /** Properties of a FeatureSetDefaults. */ @@ -34928,6 +28601,9 @@ export namespace google { /** ListOperationsRequest pageToken */ pageToken?: (string|null); + + /** ListOperationsRequest returnPartialSuccess */ + returnPartialSuccess?: (boolean|null); } /** Represents a ListOperationsRequest. */ @@ -34951,6 +28627,9 @@ export namespace google { /** ListOperationsRequest pageToken. */ public pageToken: string; + /** ListOperationsRequest returnPartialSuccess. */ + public returnPartialSuccess: boolean; + /** * Creates a new ListOperationsRequest instance using the specified properties. * @param [properties] Properties to set @@ -35037,6 +28716,9 @@ export namespace google { /** ListOperationsResponse nextPageToken */ nextPageToken?: (string|null); + + /** ListOperationsResponse unreachable */ + unreachable?: (string[]|null); } /** Represents a ListOperationsResponse. */ @@ -35054,6 +28736,9 @@ export namespace google { /** ListOperationsResponse nextPageToken. */ public nextPageToken: string; + /** ListOperationsResponse unreachable. */ + public unreachable: string[]; + /** * Creates a new ListOperationsResponse instance using the specified properties. * @param [properties] Properties to set diff --git a/packages/google-cloud-firestore-api/protos/protos.js b/packages/google-cloud-firestore-api/protos/protos.js index e7decfee3356..118cccd29967 100644 --- a/packages/google-cloud-firestore-api/protos/protos.js +++ b/packages/google-cloud-firestore-api/protos/protos.js @@ -1 +1 @@ -(function(global,factory){if(typeof define==="function"&&define.amd)define(["protobufjs/minimal"],factory);else if(typeof require==="function"&&typeof module==="object"&&module&&module.exports)module.exports=factory(require("google-gax/build/src/protobuf").protobufMinimal)})(this,function($protobuf){"use strict";var $Reader=$protobuf.Reader,$Writer=$protobuf.Writer,$util=$protobuf.util;var $root=$protobuf.roots._google_cloud_firestore_api_protos||($protobuf.roots._google_cloud_firestore_api_protos={});$root.google=function(){var google={};google.firestore=function(){var firestore={};firestore.admin=function(){var admin={};admin.v1=function(){var v1={};v1.Backup=function(){function Backup(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Backup;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{message.database=reader.string();break}case 7:{message.databaseUid=reader.string();break}case 3:{message.snapshotTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.expireTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.stats=$root.google.firestore.admin.v1.Backup.Stats.decode(reader,reader.uint32(),undefined,long+1);break}case 8:{message.state=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};Backup.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Backup.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.databaseUid!=null&&message.hasOwnProperty("databaseUid"))if(!$util.isString(message.databaseUid))return"databaseUid: string expected";if(message.snapshotTime!=null&&message.hasOwnProperty("snapshotTime")){var error=$root.google.protobuf.Timestamp.verify(message.snapshotTime,long+1);if(error)return"snapshotTime."+error}if(message.expireTime!=null&&message.hasOwnProperty("expireTime")){var error=$root.google.protobuf.Timestamp.verify(message.expireTime,long+1);if(error)return"expireTime."+error}if(message.stats!=null&&message.hasOwnProperty("stats")){var error=$root.google.firestore.admin.v1.Backup.Stats.verify(message.stats,long+1);if(error)return"stats."+error}if(message.state!=null&&message.hasOwnProperty("state"))switch(message.state){default:return"state: enum value expected";case 0:case 1:case 2:case 3:break}return null};Backup.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Backup)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Backup;if(object.name!=null)message.name=String(object.name);if(object.database!=null)message.database=String(object.database);if(object.databaseUid!=null)message.databaseUid=String(object.databaseUid);if(object.snapshotTime!=null){if(typeof object.snapshotTime!=="object")throw TypeError(".google.firestore.admin.v1.Backup.snapshotTime: object expected");message.snapshotTime=$root.google.protobuf.Timestamp.fromObject(object.snapshotTime,long+1)}if(object.expireTime!=null){if(typeof object.expireTime!=="object")throw TypeError(".google.firestore.admin.v1.Backup.expireTime: object expected");message.expireTime=$root.google.protobuf.Timestamp.fromObject(object.expireTime,long+1)}if(object.stats!=null){if(typeof object.stats!=="object")throw TypeError(".google.firestore.admin.v1.Backup.stats: object expected");message.stats=$root.google.firestore.admin.v1.Backup.Stats.fromObject(object.stats,long+1)}switch(object.state){default:if(typeof object.state==="number"){message.state=object.state;break}break;case"STATE_UNSPECIFIED":case 0:message.state=0;break;case"CREATING":case 1:message.state=1;break;case"READY":case 2:message.state=2;break;case"NOT_AVAILABLE":case 3:message.state=3;break}return message};Backup.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.database="";object.snapshotTime=null;object.expireTime=null;object.stats=null;object.databaseUid="";object.state=options.enums===String?"STATE_UNSPECIFIED":0}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.database!=null&&message.hasOwnProperty("database"))object.database=message.database;if(message.snapshotTime!=null&&message.hasOwnProperty("snapshotTime"))object.snapshotTime=$root.google.protobuf.Timestamp.toObject(message.snapshotTime,options);if(message.expireTime!=null&&message.hasOwnProperty("expireTime"))object.expireTime=$root.google.protobuf.Timestamp.toObject(message.expireTime,options);if(message.stats!=null&&message.hasOwnProperty("stats"))object.stats=$root.google.firestore.admin.v1.Backup.Stats.toObject(message.stats,options);if(message.databaseUid!=null&&message.hasOwnProperty("databaseUid"))object.databaseUid=message.databaseUid;if(message.state!=null&&message.hasOwnProperty("state"))object.state=options.enums===String?$root.google.firestore.admin.v1.Backup.State[message.state]===undefined?message.state:$root.google.firestore.admin.v1.Backup.State[message.state]:message.state;return object};Backup.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Backup.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Backup"};Backup.Stats=function(){function Stats(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Backup.Stats;while(reader.pos>>3){case 1:{message.sizeBytes=reader.int64();break}case 2:{message.documentCount=reader.int64();break}case 3:{message.indexCount=reader.int64();break}default:reader.skipType(tag&7,long);break}}return message};Stats.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Stats.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.sizeBytes!=null&&message.hasOwnProperty("sizeBytes"))if(!$util.isInteger(message.sizeBytes)&&!(message.sizeBytes&&$util.isInteger(message.sizeBytes.low)&&$util.isInteger(message.sizeBytes.high)))return"sizeBytes: integer|Long expected";if(message.documentCount!=null&&message.hasOwnProperty("documentCount"))if(!$util.isInteger(message.documentCount)&&!(message.documentCount&&$util.isInteger(message.documentCount.low)&&$util.isInteger(message.documentCount.high)))return"documentCount: integer|Long expected";if(message.indexCount!=null&&message.hasOwnProperty("indexCount"))if(!$util.isInteger(message.indexCount)&&!(message.indexCount&&$util.isInteger(message.indexCount.low)&&$util.isInteger(message.indexCount.high)))return"indexCount: integer|Long expected";return null};Stats.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Backup.Stats)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Backup.Stats;if(object.sizeBytes!=null)if($util.Long)(message.sizeBytes=$util.Long.fromValue(object.sizeBytes)).unsigned=false;else if(typeof object.sizeBytes==="string")message.sizeBytes=parseInt(object.sizeBytes,10);else if(typeof object.sizeBytes==="number")message.sizeBytes=object.sizeBytes;else if(typeof object.sizeBytes==="object")message.sizeBytes=new $util.LongBits(object.sizeBytes.low>>>0,object.sizeBytes.high>>>0).toNumber();if(object.documentCount!=null)if($util.Long)(message.documentCount=$util.Long.fromValue(object.documentCount)).unsigned=false;else if(typeof object.documentCount==="string")message.documentCount=parseInt(object.documentCount,10);else if(typeof object.documentCount==="number")message.documentCount=object.documentCount;else if(typeof object.documentCount==="object")message.documentCount=new $util.LongBits(object.documentCount.low>>>0,object.documentCount.high>>>0).toNumber();if(object.indexCount!=null)if($util.Long)(message.indexCount=$util.Long.fromValue(object.indexCount)).unsigned=false;else if(typeof object.indexCount==="string")message.indexCount=parseInt(object.indexCount,10);else if(typeof object.indexCount==="number")message.indexCount=object.indexCount;else if(typeof object.indexCount==="object")message.indexCount=new $util.LongBits(object.indexCount.low>>>0,object.indexCount.high>>>0).toNumber();return message};Stats.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){if($util.Long){var long=new $util.Long(0,0,false);object.sizeBytes=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.sizeBytes=options.longs===String?"0":0;if($util.Long){var long=new $util.Long(0,0,false);object.documentCount=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.documentCount=options.longs===String?"0":0;if($util.Long){var long=new $util.Long(0,0,false);object.indexCount=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.indexCount=options.longs===String?"0":0}if(message.sizeBytes!=null&&message.hasOwnProperty("sizeBytes"))if(typeof message.sizeBytes==="number")object.sizeBytes=options.longs===String?String(message.sizeBytes):message.sizeBytes;else object.sizeBytes=options.longs===String?$util.Long.prototype.toString.call(message.sizeBytes):options.longs===Number?new $util.LongBits(message.sizeBytes.low>>>0,message.sizeBytes.high>>>0).toNumber():message.sizeBytes;if(message.documentCount!=null&&message.hasOwnProperty("documentCount"))if(typeof message.documentCount==="number")object.documentCount=options.longs===String?String(message.documentCount):message.documentCount;else object.documentCount=options.longs===String?$util.Long.prototype.toString.call(message.documentCount):options.longs===Number?new $util.LongBits(message.documentCount.low>>>0,message.documentCount.high>>>0).toNumber():message.documentCount;if(message.indexCount!=null&&message.hasOwnProperty("indexCount"))if(typeof message.indexCount==="number")object.indexCount=options.longs===String?String(message.indexCount):message.indexCount;else object.indexCount=options.longs===String?$util.Long.prototype.toString.call(message.indexCount):options.longs===Number?new $util.LongBits(message.indexCount.low>>>0,message.indexCount.high>>>0).toNumber():message.indexCount;return object};Stats.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Stats.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Backup.Stats"};return Stats}();Backup.State=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="STATE_UNSPECIFIED"]=0;values[valuesById[1]="CREATING"]=1;values[valuesById[2]="READY"]=2;values[valuesById[3]="NOT_AVAILABLE"]=3;return values}();return Backup}();v1.Database=function(){function Database(properties){this.tags={};if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Database,key,value;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 3:{message.uid=reader.string();break}case 5:{message.createTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.updateTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.deleteTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 9:{message.locationId=reader.string();break}case 10:{message.type=reader.int32();break}case 15:{message.concurrencyMode=reader.int32();break}case 17:{message.versionRetentionPeriod=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 18:{message.earliestVersionTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 21:{message.pointInTimeRecoveryEnablement=reader.int32();break}case 19:{message.appEngineIntegrationMode=reader.int32();break}case 20:{message.keyPrefix=reader.string();break}case 22:{message.deleteProtectionState=reader.int32();break}case 23:{message.cmekConfig=$root.google.firestore.admin.v1.Database.CmekConfig.decode(reader,reader.uint32(),undefined,long+1);break}case 25:{message.previousId=reader.string();break}case 26:{message.sourceInfo=$root.google.firestore.admin.v1.Database.SourceInfo.decode(reader,reader.uint32(),undefined,long+1);break}case 29:{if(message.tags===$util.emptyObject)message.tags={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.tags,key);message.tags[key]=value;break}case 30:{message.freeTier=reader.bool();break}case 99:{message.etag=reader.string();break}case 28:{message.databaseEdition=reader.int32();break}case 31:{message.realtimeUpdatesMode=reader.int32();break}case 33:{message.firestoreDataAccessMode=reader.int32();break}case 34:{message.mongodbCompatibleDataAccessMode=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};Database.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Database.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.uid!=null&&message.hasOwnProperty("uid"))if(!$util.isString(message.uid))return"uid: string expected";if(message.createTime!=null&&message.hasOwnProperty("createTime")){var error=$root.google.protobuf.Timestamp.verify(message.createTime,long+1);if(error)return"createTime."+error}if(message.updateTime!=null&&message.hasOwnProperty("updateTime")){var error=$root.google.protobuf.Timestamp.verify(message.updateTime,long+1);if(error)return"updateTime."+error}if(message.deleteTime!=null&&message.hasOwnProperty("deleteTime")){var error=$root.google.protobuf.Timestamp.verify(message.deleteTime,long+1);if(error)return"deleteTime."+error}if(message.locationId!=null&&message.hasOwnProperty("locationId"))if(!$util.isString(message.locationId))return"locationId: string expected";if(message.type!=null&&message.hasOwnProperty("type"))switch(message.type){default:return"type: enum value expected";case 0:case 1:case 2:break}if(message.concurrencyMode!=null&&message.hasOwnProperty("concurrencyMode"))switch(message.concurrencyMode){default:return"concurrencyMode: enum value expected";case 0:case 1:case 2:case 3:break}if(message.versionRetentionPeriod!=null&&message.hasOwnProperty("versionRetentionPeriod")){var error=$root.google.protobuf.Duration.verify(message.versionRetentionPeriod,long+1);if(error)return"versionRetentionPeriod."+error}if(message.earliestVersionTime!=null&&message.hasOwnProperty("earliestVersionTime")){var error=$root.google.protobuf.Timestamp.verify(message.earliestVersionTime,long+1);if(error)return"earliestVersionTime."+error}if(message.pointInTimeRecoveryEnablement!=null&&message.hasOwnProperty("pointInTimeRecoveryEnablement"))switch(message.pointInTimeRecoveryEnablement){default:return"pointInTimeRecoveryEnablement: enum value expected";case 0:case 1:case 2:break}if(message.appEngineIntegrationMode!=null&&message.hasOwnProperty("appEngineIntegrationMode"))switch(message.appEngineIntegrationMode){default:return"appEngineIntegrationMode: enum value expected";case 0:case 1:case 2:break}if(message.keyPrefix!=null&&message.hasOwnProperty("keyPrefix"))if(!$util.isString(message.keyPrefix))return"keyPrefix: string expected";if(message.deleteProtectionState!=null&&message.hasOwnProperty("deleteProtectionState"))switch(message.deleteProtectionState){default:return"deleteProtectionState: enum value expected";case 0:case 1:case 2:break}if(message.cmekConfig!=null&&message.hasOwnProperty("cmekConfig")){var error=$root.google.firestore.admin.v1.Database.CmekConfig.verify(message.cmekConfig,long+1);if(error)return"cmekConfig."+error}if(message.previousId!=null&&message.hasOwnProperty("previousId"))if(!$util.isString(message.previousId))return"previousId: string expected";if(message.sourceInfo!=null&&message.hasOwnProperty("sourceInfo")){var error=$root.google.firestore.admin.v1.Database.SourceInfo.verify(message.sourceInfo,long+1);if(error)return"sourceInfo."+error}if(message.tags!=null&&message.hasOwnProperty("tags")){if(!$util.isObject(message.tags))return"tags: object expected";var key=Object.keys(message.tags);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Database;if(object.name!=null)message.name=String(object.name);if(object.uid!=null)message.uid=String(object.uid);if(object.createTime!=null){if(typeof object.createTime!=="object")throw TypeError(".google.firestore.admin.v1.Database.createTime: object expected");message.createTime=$root.google.protobuf.Timestamp.fromObject(object.createTime,long+1)}if(object.updateTime!=null){if(typeof object.updateTime!=="object")throw TypeError(".google.firestore.admin.v1.Database.updateTime: object expected");message.updateTime=$root.google.protobuf.Timestamp.fromObject(object.updateTime,long+1)}if(object.deleteTime!=null){if(typeof object.deleteTime!=="object")throw TypeError(".google.firestore.admin.v1.Database.deleteTime: object expected");message.deleteTime=$root.google.protobuf.Timestamp.fromObject(object.deleteTime,long+1)}if(object.locationId!=null)message.locationId=String(object.locationId);switch(object.type){default:if(typeof object.type==="number"){message.type=object.type;break}break;case"DATABASE_TYPE_UNSPECIFIED":case 0:message.type=0;break;case"FIRESTORE_NATIVE":case 1:message.type=1;break;case"DATASTORE_MODE":case 2:message.type=2;break}switch(object.concurrencyMode){default:if(typeof object.concurrencyMode==="number"){message.concurrencyMode=object.concurrencyMode;break}break;case"CONCURRENCY_MODE_UNSPECIFIED":case 0:message.concurrencyMode=0;break;case"OPTIMISTIC":case 1:message.concurrencyMode=1;break;case"PESSIMISTIC":case 2:message.concurrencyMode=2;break;case"OPTIMISTIC_WITH_ENTITY_GROUPS":case 3:message.concurrencyMode=3;break}if(object.versionRetentionPeriod!=null){if(typeof object.versionRetentionPeriod!=="object")throw TypeError(".google.firestore.admin.v1.Database.versionRetentionPeriod: object expected");message.versionRetentionPeriod=$root.google.protobuf.Duration.fromObject(object.versionRetentionPeriod,long+1)}if(object.earliestVersionTime!=null){if(typeof object.earliestVersionTime!=="object")throw TypeError(".google.firestore.admin.v1.Database.earliestVersionTime: object expected");message.earliestVersionTime=$root.google.protobuf.Timestamp.fromObject(object.earliestVersionTime,long+1)}switch(object.pointInTimeRecoveryEnablement){default:if(typeof object.pointInTimeRecoveryEnablement==="number"){message.pointInTimeRecoveryEnablement=object.pointInTimeRecoveryEnablement;break}break;case"POINT_IN_TIME_RECOVERY_ENABLEMENT_UNSPECIFIED":case 0:message.pointInTimeRecoveryEnablement=0;break;case"POINT_IN_TIME_RECOVERY_ENABLED":case 1:message.pointInTimeRecoveryEnablement=1;break;case"POINT_IN_TIME_RECOVERY_DISABLED":case 2:message.pointInTimeRecoveryEnablement=2;break}switch(object.appEngineIntegrationMode){default:if(typeof object.appEngineIntegrationMode==="number"){message.appEngineIntegrationMode=object.appEngineIntegrationMode;break}break;case"APP_ENGINE_INTEGRATION_MODE_UNSPECIFIED":case 0:message.appEngineIntegrationMode=0;break;case"ENABLED":case 1:message.appEngineIntegrationMode=1;break;case"DISABLED":case 2:message.appEngineIntegrationMode=2;break}if(object.keyPrefix!=null)message.keyPrefix=String(object.keyPrefix);switch(object.deleteProtectionState){default:if(typeof object.deleteProtectionState==="number"){message.deleteProtectionState=object.deleteProtectionState;break}break;case"DELETE_PROTECTION_STATE_UNSPECIFIED":case 0:message.deleteProtectionState=0;break;case"DELETE_PROTECTION_DISABLED":case 1:message.deleteProtectionState=1;break;case"DELETE_PROTECTION_ENABLED":case 2:message.deleteProtectionState=2;break}if(object.cmekConfig!=null){if(typeof object.cmekConfig!=="object")throw TypeError(".google.firestore.admin.v1.Database.cmekConfig: object expected");message.cmekConfig=$root.google.firestore.admin.v1.Database.CmekConfig.fromObject(object.cmekConfig,long+1)}if(object.previousId!=null)message.previousId=String(object.previousId);if(object.sourceInfo!=null){if(typeof object.sourceInfo!=="object")throw TypeError(".google.firestore.admin.v1.Database.sourceInfo: object expected");message.sourceInfo=$root.google.firestore.admin.v1.Database.SourceInfo.fromObject(object.sourceInfo,long+1)}if(object.tags){if(typeof object.tags!=="object")throw TypeError(".google.firestore.admin.v1.Database.tags: object expected");message.tags={};for(var keys=Object.keys(object.tags),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Database.CmekConfig;while(reader.pos>>3){case 1:{message.kmsKeyName=reader.string();break}case 2:{if(!(message.activeKeyVersion&&message.activeKeyVersion.length))message.activeKeyVersion=[];message.activeKeyVersion.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};CmekConfig.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CmekConfig.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.kmsKeyName!=null&&message.hasOwnProperty("kmsKeyName"))if(!$util.isString(message.kmsKeyName))return"kmsKeyName: string expected";if(message.activeKeyVersion!=null&&message.hasOwnProperty("activeKeyVersion")){if(!Array.isArray(message.activeKeyVersion))return"activeKeyVersion: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Database.CmekConfig;if(object.kmsKeyName!=null)message.kmsKeyName=String(object.kmsKeyName);if(object.activeKeyVersion){if(!Array.isArray(object.activeKeyVersion))throw TypeError(".google.firestore.admin.v1.Database.CmekConfig.activeKeyVersion: array expected");message.activeKeyVersion=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Database.SourceInfo;while(reader.pos>>3){case 1:{message.backup=$root.google.firestore.admin.v1.Database.SourceInfo.BackupSource.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.operation=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};SourceInfo.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};SourceInfo.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.backup!=null&&message.hasOwnProperty("backup")){properties.source=1;{var error=$root.google.firestore.admin.v1.Database.SourceInfo.BackupSource.verify(message.backup,long+1);if(error)return"backup."+error}}if(message.operation!=null&&message.hasOwnProperty("operation"))if(!$util.isString(message.operation))return"operation: string expected";return null};SourceInfo.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Database.SourceInfo)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Database.SourceInfo;if(object.backup!=null){if(typeof object.backup!=="object")throw TypeError(".google.firestore.admin.v1.Database.SourceInfo.backup: object expected");message.backup=$root.google.firestore.admin.v1.Database.SourceInfo.BackupSource.fromObject(object.backup,long+1)}if(object.operation!=null)message.operation=String(object.operation);return message};SourceInfo.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.operation="";if(message.backup!=null&&message.hasOwnProperty("backup")){object.backup=$root.google.firestore.admin.v1.Database.SourceInfo.BackupSource.toObject(message.backup,options);if(options.oneofs)object.source="backup"}if(message.operation!=null&&message.hasOwnProperty("operation"))object.operation=message.operation;return object};SourceInfo.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};SourceInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Database.SourceInfo"};SourceInfo.BackupSource=function(){function BackupSource(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Database.SourceInfo.BackupSource;while(reader.pos>>3){case 1:{message.backup=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};BackupSource.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BackupSource.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.backup!=null&&message.hasOwnProperty("backup"))if(!$util.isString(message.backup))return"backup: string expected";return null};BackupSource.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Database.SourceInfo.BackupSource)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Database.SourceInfo.BackupSource;if(object.backup!=null)message.backup=String(object.backup);return message};BackupSource.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.backup="";if(message.backup!=null&&message.hasOwnProperty("backup"))object.backup=message.backup;return object};BackupSource.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BackupSource.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Database.SourceInfo.BackupSource"};return BackupSource}();return SourceInfo}();Database.EncryptionConfig=function(){function EncryptionConfig(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Database.EncryptionConfig;while(reader.pos>>3){case 1:{message.googleDefaultEncryption=$root.google.firestore.admin.v1.Database.EncryptionConfig.GoogleDefaultEncryptionOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.useSourceEncryption=$root.google.firestore.admin.v1.Database.EncryptionConfig.SourceEncryptionOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.customerManagedEncryption=$root.google.firestore.admin.v1.Database.EncryptionConfig.CustomerManagedEncryptionOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};EncryptionConfig.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EncryptionConfig.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.googleDefaultEncryption!=null&&message.hasOwnProperty("googleDefaultEncryption")){properties.encryptionType=1;{var error=$root.google.firestore.admin.v1.Database.EncryptionConfig.GoogleDefaultEncryptionOptions.verify(message.googleDefaultEncryption,long+1);if(error)return"googleDefaultEncryption."+error}}if(message.useSourceEncryption!=null&&message.hasOwnProperty("useSourceEncryption")){if(properties.encryptionType===1)return"encryptionType: multiple values";properties.encryptionType=1;{var error=$root.google.firestore.admin.v1.Database.EncryptionConfig.SourceEncryptionOptions.verify(message.useSourceEncryption,long+1);if(error)return"useSourceEncryption."+error}}if(message.customerManagedEncryption!=null&&message.hasOwnProperty("customerManagedEncryption")){if(properties.encryptionType===1)return"encryptionType: multiple values";properties.encryptionType=1;{var error=$root.google.firestore.admin.v1.Database.EncryptionConfig.CustomerManagedEncryptionOptions.verify(message.customerManagedEncryption,long+1);if(error)return"customerManagedEncryption."+error}}return null};EncryptionConfig.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Database.EncryptionConfig)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Database.EncryptionConfig;if(object.googleDefaultEncryption!=null){if(typeof object.googleDefaultEncryption!=="object")throw TypeError(".google.firestore.admin.v1.Database.EncryptionConfig.googleDefaultEncryption: object expected");message.googleDefaultEncryption=$root.google.firestore.admin.v1.Database.EncryptionConfig.GoogleDefaultEncryptionOptions.fromObject(object.googleDefaultEncryption,long+1)}if(object.useSourceEncryption!=null){if(typeof object.useSourceEncryption!=="object")throw TypeError(".google.firestore.admin.v1.Database.EncryptionConfig.useSourceEncryption: object expected");message.useSourceEncryption=$root.google.firestore.admin.v1.Database.EncryptionConfig.SourceEncryptionOptions.fromObject(object.useSourceEncryption,long+1)}if(object.customerManagedEncryption!=null){if(typeof object.customerManagedEncryption!=="object")throw TypeError(".google.firestore.admin.v1.Database.EncryptionConfig.customerManagedEncryption: object expected");message.customerManagedEncryption=$root.google.firestore.admin.v1.Database.EncryptionConfig.CustomerManagedEncryptionOptions.fromObject(object.customerManagedEncryption,long+1)}return message};EncryptionConfig.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.googleDefaultEncryption!=null&&message.hasOwnProperty("googleDefaultEncryption")){object.googleDefaultEncryption=$root.google.firestore.admin.v1.Database.EncryptionConfig.GoogleDefaultEncryptionOptions.toObject(message.googleDefaultEncryption,options);if(options.oneofs)object.encryptionType="googleDefaultEncryption"}if(message.useSourceEncryption!=null&&message.hasOwnProperty("useSourceEncryption")){object.useSourceEncryption=$root.google.firestore.admin.v1.Database.EncryptionConfig.SourceEncryptionOptions.toObject(message.useSourceEncryption,options);if(options.oneofs)object.encryptionType="useSourceEncryption"}if(message.customerManagedEncryption!=null&&message.hasOwnProperty("customerManagedEncryption")){object.customerManagedEncryption=$root.google.firestore.admin.v1.Database.EncryptionConfig.CustomerManagedEncryptionOptions.toObject(message.customerManagedEncryption,options);if(options.oneofs)object.encryptionType="customerManagedEncryption"}return object};EncryptionConfig.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};EncryptionConfig.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Database.EncryptionConfig"};EncryptionConfig.GoogleDefaultEncryptionOptions=function(){function GoogleDefaultEncryptionOptions(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Database.EncryptionConfig.GoogleDefaultEncryptionOptions;while(reader.pos>>3){default:reader.skipType(tag&7,long);break}}return message};GoogleDefaultEncryptionOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GoogleDefaultEncryptionOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};GoogleDefaultEncryptionOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Database.EncryptionConfig.GoogleDefaultEncryptionOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.firestore.admin.v1.Database.EncryptionConfig.GoogleDefaultEncryptionOptions};GoogleDefaultEncryptionOptions.toObject=function toObject(){return{}};GoogleDefaultEncryptionOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GoogleDefaultEncryptionOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Database.EncryptionConfig.GoogleDefaultEncryptionOptions"};return GoogleDefaultEncryptionOptions}();EncryptionConfig.SourceEncryptionOptions=function(){function SourceEncryptionOptions(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Database.EncryptionConfig.SourceEncryptionOptions;while(reader.pos>>3){default:reader.skipType(tag&7,long);break}}return message};SourceEncryptionOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};SourceEncryptionOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};SourceEncryptionOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Database.EncryptionConfig.SourceEncryptionOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.firestore.admin.v1.Database.EncryptionConfig.SourceEncryptionOptions};SourceEncryptionOptions.toObject=function toObject(){return{}};SourceEncryptionOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};SourceEncryptionOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Database.EncryptionConfig.SourceEncryptionOptions"};return SourceEncryptionOptions}();EncryptionConfig.CustomerManagedEncryptionOptions=function(){function CustomerManagedEncryptionOptions(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Database.EncryptionConfig.CustomerManagedEncryptionOptions;while(reader.pos>>3){case 1:{message.kmsKeyName=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};CustomerManagedEncryptionOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CustomerManagedEncryptionOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.kmsKeyName!=null&&message.hasOwnProperty("kmsKeyName"))if(!$util.isString(message.kmsKeyName))return"kmsKeyName: string expected";return null};CustomerManagedEncryptionOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Database.EncryptionConfig.CustomerManagedEncryptionOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Database.EncryptionConfig.CustomerManagedEncryptionOptions;if(object.kmsKeyName!=null)message.kmsKeyName=String(object.kmsKeyName);return message};CustomerManagedEncryptionOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.kmsKeyName="";if(message.kmsKeyName!=null&&message.hasOwnProperty("kmsKeyName"))object.kmsKeyName=message.kmsKeyName;return object};CustomerManagedEncryptionOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CustomerManagedEncryptionOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Database.EncryptionConfig.CustomerManagedEncryptionOptions"};return CustomerManagedEncryptionOptions}();return EncryptionConfig}();Database.DatabaseEdition=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="DATABASE_EDITION_UNSPECIFIED"]=0;values[valuesById[1]="STANDARD"]=1;values[valuesById[2]="ENTERPRISE"]=2;return values}();Database.DataAccessMode=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="DATA_ACCESS_MODE_UNSPECIFIED"]=0;values[valuesById[1]="DATA_ACCESS_MODE_ENABLED"]=1;values[valuesById[2]="DATA_ACCESS_MODE_DISABLED"]=2;return values}();return Database}();v1.RealtimeUpdatesMode=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="REALTIME_UPDATES_MODE_UNSPECIFIED"]=0;values[valuesById[1]="REALTIME_UPDATES_MODE_ENABLED"]=1;values[valuesById[2]="REALTIME_UPDATES_MODE_DISABLED"]=2;return values}();v1.Field=function(){function Field(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Field;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{message.indexConfig=$root.google.firestore.admin.v1.Field.IndexConfig.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.ttlConfig=$root.google.firestore.admin.v1.Field.TtlConfig.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Field.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Field.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.indexConfig!=null&&message.hasOwnProperty("indexConfig")){var error=$root.google.firestore.admin.v1.Field.IndexConfig.verify(message.indexConfig,long+1);if(error)return"indexConfig."+error}if(message.ttlConfig!=null&&message.hasOwnProperty("ttlConfig")){var error=$root.google.firestore.admin.v1.Field.TtlConfig.verify(message.ttlConfig,long+1);if(error)return"ttlConfig."+error}return null};Field.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Field)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Field;if(object.name!=null)message.name=String(object.name);if(object.indexConfig!=null){if(typeof object.indexConfig!=="object")throw TypeError(".google.firestore.admin.v1.Field.indexConfig: object expected");message.indexConfig=$root.google.firestore.admin.v1.Field.IndexConfig.fromObject(object.indexConfig,long+1)}if(object.ttlConfig!=null){if(typeof object.ttlConfig!=="object")throw TypeError(".google.firestore.admin.v1.Field.ttlConfig: object expected");message.ttlConfig=$root.google.firestore.admin.v1.Field.TtlConfig.fromObject(object.ttlConfig,long+1)}return message};Field.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.indexConfig=null;object.ttlConfig=null}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.indexConfig!=null&&message.hasOwnProperty("indexConfig"))object.indexConfig=$root.google.firestore.admin.v1.Field.IndexConfig.toObject(message.indexConfig,options);if(message.ttlConfig!=null&&message.hasOwnProperty("ttlConfig"))object.ttlConfig=$root.google.firestore.admin.v1.Field.TtlConfig.toObject(message.ttlConfig,options);return object};Field.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Field.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Field"};Field.IndexConfig=function(){function IndexConfig(properties){this.indexes=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Field.IndexConfig;while(reader.pos>>3){case 1:{if(!(message.indexes&&message.indexes.length))message.indexes=[];message.indexes.push($root.google.firestore.admin.v1.Index.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.usesAncestorConfig=reader.bool();break}case 3:{message.ancestorField=reader.string();break}case 4:{message.reverting=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};IndexConfig.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};IndexConfig.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.indexes!=null&&message.hasOwnProperty("indexes")){if(!Array.isArray(message.indexes))return"indexes: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Field.IndexConfig;if(object.indexes){if(!Array.isArray(object.indexes))throw TypeError(".google.firestore.admin.v1.Field.IndexConfig.indexes: array expected");message.indexes=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Field.TtlConfig;while(reader.pos>>3){case 1:{message.state=reader.int32();break}case 3:{message.expirationOffset=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};TtlConfig.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};TtlConfig.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.state!=null&&message.hasOwnProperty("state"))switch(message.state){default:return"state: enum value expected";case 0:case 1:case 2:case 3:break}if(message.expirationOffset!=null&&message.hasOwnProperty("expirationOffset")){var error=$root.google.protobuf.Duration.verify(message.expirationOffset,long+1);if(error)return"expirationOffset."+error}return null};TtlConfig.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Field.TtlConfig)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Field.TtlConfig;switch(object.state){default:if(typeof object.state==="number"){message.state=object.state;break}break;case"STATE_UNSPECIFIED":case 0:message.state=0;break;case"CREATING":case 1:message.state=1;break;case"ACTIVE":case 2:message.state=2;break;case"NEEDS_REPAIR":case 3:message.state=3;break}if(object.expirationOffset!=null){if(typeof object.expirationOffset!=="object")throw TypeError(".google.firestore.admin.v1.Field.TtlConfig.expirationOffset: object expected");message.expirationOffset=$root.google.protobuf.Duration.fromObject(object.expirationOffset,long+1)}return message};TtlConfig.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.state=options.enums===String?"STATE_UNSPECIFIED":0;object.expirationOffset=null}if(message.state!=null&&message.hasOwnProperty("state"))object.state=options.enums===String?$root.google.firestore.admin.v1.Field.TtlConfig.State[message.state]===undefined?message.state:$root.google.firestore.admin.v1.Field.TtlConfig.State[message.state]:message.state;if(message.expirationOffset!=null&&message.hasOwnProperty("expirationOffset"))object.expirationOffset=$root.google.protobuf.Duration.toObject(message.expirationOffset,options);return object};TtlConfig.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};TtlConfig.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Field.TtlConfig"};TtlConfig.State=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="STATE_UNSPECIFIED"]=0;values[valuesById[1]="CREATING"]=1;values[valuesById[2]="ACTIVE"]=2;values[valuesById[3]="NEEDS_REPAIR"]=3;return values}();return TtlConfig}();return Field}();v1.Index=function(){function Index(properties){this.fields=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Index;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{message.queryScope=reader.int32();break}case 5:{message.apiScope=reader.int32();break}case 3:{if(!(message.fields&&message.fields.length))message.fields=[];message.fields.push($root.google.firestore.admin.v1.Index.IndexField.decode(reader,reader.uint32(),undefined,long+1));break}case 4:{message.state=reader.int32();break}case 6:{message.density=reader.int32();break}case 7:{message.multikey=reader.bool();break}case 8:{message.shardCount=reader.int32();break}case 10:{message.unique=reader.bool();break}case 9:{message.searchIndexOptions=$root.google.firestore.admin.v1.Index.SearchIndexOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Index.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Index.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.queryScope!=null&&message.hasOwnProperty("queryScope"))switch(message.queryScope){default:return"queryScope: enum value expected";case 0:case 1:case 2:case 3:break}if(message.apiScope!=null&&message.hasOwnProperty("apiScope"))switch(message.apiScope){default:return"apiScope: enum value expected";case 0:case 1:case 2:break}if(message.fields!=null&&message.hasOwnProperty("fields")){if(!Array.isArray(message.fields))return"fields: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Index;if(object.name!=null)message.name=String(object.name);switch(object.queryScope){default:if(typeof object.queryScope==="number"){message.queryScope=object.queryScope;break}break;case"QUERY_SCOPE_UNSPECIFIED":case 0:message.queryScope=0;break;case"COLLECTION":case 1:message.queryScope=1;break;case"COLLECTION_GROUP":case 2:message.queryScope=2;break;case"COLLECTION_RECURSIVE":case 3:message.queryScope=3;break}switch(object.apiScope){default:if(typeof object.apiScope==="number"){message.apiScope=object.apiScope;break}break;case"ANY_API":case 0:message.apiScope=0;break;case"DATASTORE_MODE_API":case 1:message.apiScope=1;break;case"MONGODB_COMPATIBLE_API":case 2:message.apiScope=2;break}if(object.fields){if(!Array.isArray(object.fields))throw TypeError(".google.firestore.admin.v1.Index.fields: array expected");message.fields=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Index.IndexField;while(reader.pos>>3){case 1:{message.fieldPath=reader.string();break}case 2:{message.order=reader.int32();break}case 3:{message.arrayConfig=reader.int32();break}case 4:{message.vectorConfig=$root.google.firestore.admin.v1.Index.IndexField.VectorConfig.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.searchConfig=$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};IndexField.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};IndexField.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.fieldPath!=null&&message.hasOwnProperty("fieldPath"))if(!$util.isString(message.fieldPath))return"fieldPath: string expected";if(message.order!=null&&message.hasOwnProperty("order")){properties.valueMode=1;switch(message.order){default:return"order: enum value expected";case 0:case 1:case 2:break}}if(message.arrayConfig!=null&&message.hasOwnProperty("arrayConfig")){if(properties.valueMode===1)return"valueMode: multiple values";properties.valueMode=1;switch(message.arrayConfig){default:return"arrayConfig: enum value expected";case 0:case 1:break}}if(message.vectorConfig!=null&&message.hasOwnProperty("vectorConfig")){if(properties.valueMode===1)return"valueMode: multiple values";properties.valueMode=1;{var error=$root.google.firestore.admin.v1.Index.IndexField.VectorConfig.verify(message.vectorConfig,long+1);if(error)return"vectorConfig."+error}}if(message.searchConfig!=null&&message.hasOwnProperty("searchConfig")){if(properties.valueMode===1)return"valueMode: multiple values";properties.valueMode=1;{var error=$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.verify(message.searchConfig,long+1);if(error)return"searchConfig."+error}}return null};IndexField.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Index.IndexField)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Index.IndexField;if(object.fieldPath!=null)message.fieldPath=String(object.fieldPath);switch(object.order){default:if(typeof object.order==="number"){message.order=object.order;break}break;case"ORDER_UNSPECIFIED":case 0:message.order=0;break;case"ASCENDING":case 1:message.order=1;break;case"DESCENDING":case 2:message.order=2;break}switch(object.arrayConfig){default:if(typeof object.arrayConfig==="number"){message.arrayConfig=object.arrayConfig;break}break;case"ARRAY_CONFIG_UNSPECIFIED":case 0:message.arrayConfig=0;break;case"CONTAINS":case 1:message.arrayConfig=1;break}if(object.vectorConfig!=null){if(typeof object.vectorConfig!=="object")throw TypeError(".google.firestore.admin.v1.Index.IndexField.vectorConfig: object expected");message.vectorConfig=$root.google.firestore.admin.v1.Index.IndexField.VectorConfig.fromObject(object.vectorConfig,long+1)}if(object.searchConfig!=null){if(typeof object.searchConfig!=="object")throw TypeError(".google.firestore.admin.v1.Index.IndexField.searchConfig: object expected");message.searchConfig=$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.fromObject(object.searchConfig,long+1)}return message};IndexField.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.fieldPath="";if(message.fieldPath!=null&&message.hasOwnProperty("fieldPath"))object.fieldPath=message.fieldPath;if(message.order!=null&&message.hasOwnProperty("order")){object.order=options.enums===String?$root.google.firestore.admin.v1.Index.IndexField.Order[message.order]===undefined?message.order:$root.google.firestore.admin.v1.Index.IndexField.Order[message.order]:message.order;if(options.oneofs)object.valueMode="order"}if(message.arrayConfig!=null&&message.hasOwnProperty("arrayConfig")){object.arrayConfig=options.enums===String?$root.google.firestore.admin.v1.Index.IndexField.ArrayConfig[message.arrayConfig]===undefined?message.arrayConfig:$root.google.firestore.admin.v1.Index.IndexField.ArrayConfig[message.arrayConfig]:message.arrayConfig;if(options.oneofs)object.valueMode="arrayConfig"}if(message.vectorConfig!=null&&message.hasOwnProperty("vectorConfig")){object.vectorConfig=$root.google.firestore.admin.v1.Index.IndexField.VectorConfig.toObject(message.vectorConfig,options);if(options.oneofs)object.valueMode="vectorConfig"}if(message.searchConfig!=null&&message.hasOwnProperty("searchConfig")){object.searchConfig=$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.toObject(message.searchConfig,options);if(options.oneofs)object.valueMode="searchConfig"}return object};IndexField.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};IndexField.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Index.IndexField"};IndexField.Order=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="ORDER_UNSPECIFIED"]=0;values[valuesById[1]="ASCENDING"]=1;values[valuesById[2]="DESCENDING"]=2;return values}();IndexField.ArrayConfig=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="ARRAY_CONFIG_UNSPECIFIED"]=0;values[valuesById[1]="CONTAINS"]=1;return values}();IndexField.VectorConfig=function(){function VectorConfig(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Index.IndexField.VectorConfig;while(reader.pos>>3){case 1:{message.dimension=reader.int32();break}case 2:{message.flat=$root.google.firestore.admin.v1.Index.IndexField.VectorConfig.FlatIndex.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};VectorConfig.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};VectorConfig.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.dimension!=null&&message.hasOwnProperty("dimension"))if(!$util.isInteger(message.dimension))return"dimension: integer expected";if(message.flat!=null&&message.hasOwnProperty("flat")){properties.type=1;{var error=$root.google.firestore.admin.v1.Index.IndexField.VectorConfig.FlatIndex.verify(message.flat,long+1);if(error)return"flat."+error}}return null};VectorConfig.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Index.IndexField.VectorConfig)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Index.IndexField.VectorConfig;if(object.dimension!=null)message.dimension=object.dimension|0;if(object.flat!=null){if(typeof object.flat!=="object")throw TypeError(".google.firestore.admin.v1.Index.IndexField.VectorConfig.flat: object expected");message.flat=$root.google.firestore.admin.v1.Index.IndexField.VectorConfig.FlatIndex.fromObject(object.flat,long+1)}return message};VectorConfig.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.dimension=0;if(message.dimension!=null&&message.hasOwnProperty("dimension"))object.dimension=message.dimension;if(message.flat!=null&&message.hasOwnProperty("flat")){object.flat=$root.google.firestore.admin.v1.Index.IndexField.VectorConfig.FlatIndex.toObject(message.flat,options);if(options.oneofs)object.type="flat"}return object};VectorConfig.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};VectorConfig.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Index.IndexField.VectorConfig"};VectorConfig.FlatIndex=function(){function FlatIndex(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Index.IndexField.VectorConfig.FlatIndex;while(reader.pos>>3){default:reader.skipType(tag&7,long);break}}return message};FlatIndex.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FlatIndex.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};FlatIndex.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Index.IndexField.VectorConfig.FlatIndex)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.firestore.admin.v1.Index.IndexField.VectorConfig.FlatIndex};FlatIndex.toObject=function toObject(){return{}};FlatIndex.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FlatIndex.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Index.IndexField.VectorConfig.FlatIndex"};return FlatIndex}();return VectorConfig}();IndexField.SearchConfig=function(){function SearchConfig(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Index.IndexField.SearchConfig;while(reader.pos>>3){case 1:{message.textSpec=$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.geoSpec=$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};SearchConfig.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};SearchConfig.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.textSpec!=null&&message.hasOwnProperty("textSpec")){var error=$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec.verify(message.textSpec,long+1);if(error)return"textSpec."+error}if(message.geoSpec!=null&&message.hasOwnProperty("geoSpec")){var error=$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec.verify(message.geoSpec,long+1);if(error)return"geoSpec."+error}return null};SearchConfig.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Index.IndexField.SearchConfig)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Index.IndexField.SearchConfig;if(object.textSpec!=null){if(typeof object.textSpec!=="object")throw TypeError(".google.firestore.admin.v1.Index.IndexField.SearchConfig.textSpec: object expected");message.textSpec=$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec.fromObject(object.textSpec,long+1)}if(object.geoSpec!=null){if(typeof object.geoSpec!=="object")throw TypeError(".google.firestore.admin.v1.Index.IndexField.SearchConfig.geoSpec: object expected");message.geoSpec=$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec.fromObject(object.geoSpec,long+1)}return message};SearchConfig.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.textSpec=null;object.geoSpec=null}if(message.textSpec!=null&&message.hasOwnProperty("textSpec"))object.textSpec=$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec.toObject(message.textSpec,options);if(message.geoSpec!=null&&message.hasOwnProperty("geoSpec"))object.geoSpec=$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec.toObject(message.geoSpec,options);return object};SearchConfig.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};SearchConfig.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Index.IndexField.SearchConfig"};SearchConfig.TextIndexType=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="TEXT_INDEX_TYPE_UNSPECIFIED"]=0;values[valuesById[1]="TOKENIZED"]=1;return values}();SearchConfig.TextMatchType=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="TEXT_MATCH_TYPE_UNSPECIFIED"]=0;values[valuesById[1]="MATCH_GLOBALLY"]=1;return values}();SearchConfig.SearchTextIndexSpec=function(){function SearchTextIndexSpec(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec;while(reader.pos>>3){case 1:{message.indexType=reader.int32();break}case 2:{message.matchType=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};SearchTextIndexSpec.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};SearchTextIndexSpec.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.indexType!=null&&message.hasOwnProperty("indexType"))switch(message.indexType){default:return"indexType: enum value expected";case 0:case 1:break}if(message.matchType!=null&&message.hasOwnProperty("matchType"))switch(message.matchType){default:return"matchType: enum value expected";case 0:case 1:break}return null};SearchTextIndexSpec.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec;switch(object.indexType){default:if(typeof object.indexType==="number"){message.indexType=object.indexType;break}break;case"TEXT_INDEX_TYPE_UNSPECIFIED":case 0:message.indexType=0;break;case"TOKENIZED":case 1:message.indexType=1;break}switch(object.matchType){default:if(typeof object.matchType==="number"){message.matchType=object.matchType;break}break;case"TEXT_MATCH_TYPE_UNSPECIFIED":case 0:message.matchType=0;break;case"MATCH_GLOBALLY":case 1:message.matchType=1;break}return message};SearchTextIndexSpec.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.indexType=options.enums===String?"TEXT_INDEX_TYPE_UNSPECIFIED":0;object.matchType=options.enums===String?"TEXT_MATCH_TYPE_UNSPECIFIED":0}if(message.indexType!=null&&message.hasOwnProperty("indexType"))object.indexType=options.enums===String?$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType[message.indexType]===undefined?message.indexType:$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType[message.indexType]:message.indexType;if(message.matchType!=null&&message.hasOwnProperty("matchType"))object.matchType=options.enums===String?$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType[message.matchType]===undefined?message.matchType:$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType[message.matchType]:message.matchType;return object};SearchTextIndexSpec.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};SearchTextIndexSpec.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec"};return SearchTextIndexSpec}();SearchConfig.SearchTextSpec=function(){function SearchTextSpec(properties){this.indexSpecs=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec;while(reader.pos>>3){case 1:{if(!(message.indexSpecs&&message.indexSpecs.length))message.indexSpecs=[];message.indexSpecs.push($root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};SearchTextSpec.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};SearchTextSpec.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.indexSpecs!=null&&message.hasOwnProperty("indexSpecs")){if(!Array.isArray(message.indexSpecs))return"indexSpecs: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec;if(object.indexSpecs){if(!Array.isArray(object.indexSpecs))throw TypeError(".google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec.indexSpecs: array expected");message.indexSpecs=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec;while(reader.pos>>3){case 1:{message.geoJsonIndexingDisabled=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};SearchGeoSpec.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};SearchGeoSpec.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.geoJsonIndexingDisabled!=null&&message.hasOwnProperty("geoJsonIndexingDisabled"))if(typeof message.geoJsonIndexingDisabled!=="boolean")return"geoJsonIndexingDisabled: boolean expected";return null};SearchGeoSpec.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec;if(object.geoJsonIndexingDisabled!=null)message.geoJsonIndexingDisabled=Boolean(object.geoJsonIndexingDisabled);return message};SearchGeoSpec.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.geoJsonIndexingDisabled=false;if(message.geoJsonIndexingDisabled!=null&&message.hasOwnProperty("geoJsonIndexingDisabled"))object.geoJsonIndexingDisabled=message.geoJsonIndexingDisabled;return object};SearchGeoSpec.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};SearchGeoSpec.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec"};return SearchGeoSpec}();return SearchConfig}();return IndexField}();Index.State=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="STATE_UNSPECIFIED"]=0;values[valuesById[1]="CREATING"]=1;values[valuesById[2]="READY"]=2;values[valuesById[3]="NEEDS_REPAIR"]=3;return values}();Index.Density=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="DENSITY_UNSPECIFIED"]=0;values[valuesById[1]="SPARSE_ALL"]=1;values[valuesById[2]="SPARSE_ANY"]=2;values[valuesById[3]="DENSE"]=3;return values}();Index.SearchIndexOptions=function(){function SearchIndexOptions(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Index.SearchIndexOptions;while(reader.pos>>3){case 1:{message.textLanguage=reader.string();break}case 2:{message.textLanguageOverrideFieldPath=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};SearchIndexOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};SearchIndexOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.textLanguage!=null&&message.hasOwnProperty("textLanguage"))if(!$util.isString(message.textLanguage))return"textLanguage: string expected";if(message.textLanguageOverrideFieldPath!=null&&message.hasOwnProperty("textLanguageOverrideFieldPath"))if(!$util.isString(message.textLanguageOverrideFieldPath))return"textLanguageOverrideFieldPath: string expected";return null};SearchIndexOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Index.SearchIndexOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Index.SearchIndexOptions;if(object.textLanguage!=null)message.textLanguage=String(object.textLanguage);if(object.textLanguageOverrideFieldPath!=null)message.textLanguageOverrideFieldPath=String(object.textLanguageOverrideFieldPath);return message};SearchIndexOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.textLanguage="";object.textLanguageOverrideFieldPath=""}if(message.textLanguage!=null&&message.hasOwnProperty("textLanguage"))object.textLanguage=message.textLanguage;if(message.textLanguageOverrideFieldPath!=null&&message.hasOwnProperty("textLanguageOverrideFieldPath"))object.textLanguageOverrideFieldPath=message.textLanguageOverrideFieldPath;return object};SearchIndexOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};SearchIndexOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Index.SearchIndexOptions"};return SearchIndexOptions}();return Index}();v1.FirestoreAdmin=function(){function FirestoreAdmin(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited)}(FirestoreAdmin.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=FirestoreAdmin;FirestoreAdmin.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited)};Object.defineProperty(FirestoreAdmin.prototype.createIndex=function createIndex(request,callback){return this.rpcCall(createIndex,$root.google.firestore.admin.v1.CreateIndexRequest,$root.google.longrunning.Operation,request,callback)},"name",{value:"CreateIndex"});Object.defineProperty(FirestoreAdmin.prototype.listIndexes=function listIndexes(request,callback){return this.rpcCall(listIndexes,$root.google.firestore.admin.v1.ListIndexesRequest,$root.google.firestore.admin.v1.ListIndexesResponse,request,callback)},"name",{value:"ListIndexes"});Object.defineProperty(FirestoreAdmin.prototype.getIndex=function getIndex(request,callback){return this.rpcCall(getIndex,$root.google.firestore.admin.v1.GetIndexRequest,$root.google.firestore.admin.v1.Index,request,callback)},"name",{value:"GetIndex"});Object.defineProperty(FirestoreAdmin.prototype.deleteIndex=function deleteIndex(request,callback){return this.rpcCall(deleteIndex,$root.google.firestore.admin.v1.DeleteIndexRequest,$root.google.protobuf.Empty,request,callback)},"name",{value:"DeleteIndex"});Object.defineProperty(FirestoreAdmin.prototype.getField=function getField(request,callback){return this.rpcCall(getField,$root.google.firestore.admin.v1.GetFieldRequest,$root.google.firestore.admin.v1.Field,request,callback)},"name",{value:"GetField"});Object.defineProperty(FirestoreAdmin.prototype.updateField=function updateField(request,callback){return this.rpcCall(updateField,$root.google.firestore.admin.v1.UpdateFieldRequest,$root.google.longrunning.Operation,request,callback)},"name",{value:"UpdateField"});Object.defineProperty(FirestoreAdmin.prototype.listFields=function listFields(request,callback){return this.rpcCall(listFields,$root.google.firestore.admin.v1.ListFieldsRequest,$root.google.firestore.admin.v1.ListFieldsResponse,request,callback)},"name",{value:"ListFields"});Object.defineProperty(FirestoreAdmin.prototype.exportDocuments=function exportDocuments(request,callback){return this.rpcCall(exportDocuments,$root.google.firestore.admin.v1.ExportDocumentsRequest,$root.google.longrunning.Operation,request,callback)},"name",{value:"ExportDocuments"});Object.defineProperty(FirestoreAdmin.prototype.importDocuments=function importDocuments(request,callback){return this.rpcCall(importDocuments,$root.google.firestore.admin.v1.ImportDocumentsRequest,$root.google.longrunning.Operation,request,callback)},"name",{value:"ImportDocuments"});Object.defineProperty(FirestoreAdmin.prototype.bulkDeleteDocuments=function bulkDeleteDocuments(request,callback){return this.rpcCall(bulkDeleteDocuments,$root.google.firestore.admin.v1.BulkDeleteDocumentsRequest,$root.google.longrunning.Operation,request,callback)},"name",{value:"BulkDeleteDocuments"});Object.defineProperty(FirestoreAdmin.prototype.createDatabase=function createDatabase(request,callback){return this.rpcCall(createDatabase,$root.google.firestore.admin.v1.CreateDatabaseRequest,$root.google.longrunning.Operation,request,callback)},"name",{value:"CreateDatabase"});Object.defineProperty(FirestoreAdmin.prototype.getDatabase=function getDatabase(request,callback){return this.rpcCall(getDatabase,$root.google.firestore.admin.v1.GetDatabaseRequest,$root.google.firestore.admin.v1.Database,request,callback)},"name",{value:"GetDatabase"});Object.defineProperty(FirestoreAdmin.prototype.listDatabases=function listDatabases(request,callback){return this.rpcCall(listDatabases,$root.google.firestore.admin.v1.ListDatabasesRequest,$root.google.firestore.admin.v1.ListDatabasesResponse,request,callback)},"name",{value:"ListDatabases"});Object.defineProperty(FirestoreAdmin.prototype.updateDatabase=function updateDatabase(request,callback){return this.rpcCall(updateDatabase,$root.google.firestore.admin.v1.UpdateDatabaseRequest,$root.google.longrunning.Operation,request,callback)},"name",{value:"UpdateDatabase"});Object.defineProperty(FirestoreAdmin.prototype.deleteDatabase=function deleteDatabase(request,callback){return this.rpcCall(deleteDatabase,$root.google.firestore.admin.v1.DeleteDatabaseRequest,$root.google.longrunning.Operation,request,callback)},"name",{value:"DeleteDatabase"});Object.defineProperty(FirestoreAdmin.prototype.createUserCreds=function createUserCreds(request,callback){return this.rpcCall(createUserCreds,$root.google.firestore.admin.v1.CreateUserCredsRequest,$root.google.firestore.admin.v1.UserCreds,request,callback)},"name",{value:"CreateUserCreds"});Object.defineProperty(FirestoreAdmin.prototype.getUserCreds=function getUserCreds(request,callback){return this.rpcCall(getUserCreds,$root.google.firestore.admin.v1.GetUserCredsRequest,$root.google.firestore.admin.v1.UserCreds,request,callback)},"name",{value:"GetUserCreds"});Object.defineProperty(FirestoreAdmin.prototype.listUserCreds=function listUserCreds(request,callback){return this.rpcCall(listUserCreds,$root.google.firestore.admin.v1.ListUserCredsRequest,$root.google.firestore.admin.v1.ListUserCredsResponse,request,callback)},"name",{value:"ListUserCreds"});Object.defineProperty(FirestoreAdmin.prototype.enableUserCreds=function enableUserCreds(request,callback){return this.rpcCall(enableUserCreds,$root.google.firestore.admin.v1.EnableUserCredsRequest,$root.google.firestore.admin.v1.UserCreds,request,callback)},"name",{value:"EnableUserCreds"});Object.defineProperty(FirestoreAdmin.prototype.disableUserCreds=function disableUserCreds(request,callback){return this.rpcCall(disableUserCreds,$root.google.firestore.admin.v1.DisableUserCredsRequest,$root.google.firestore.admin.v1.UserCreds,request,callback)},"name",{value:"DisableUserCreds"});Object.defineProperty(FirestoreAdmin.prototype.resetUserPassword=function resetUserPassword(request,callback){return this.rpcCall(resetUserPassword,$root.google.firestore.admin.v1.ResetUserPasswordRequest,$root.google.firestore.admin.v1.UserCreds,request,callback)},"name",{value:"ResetUserPassword"});Object.defineProperty(FirestoreAdmin.prototype.deleteUserCreds=function deleteUserCreds(request,callback){return this.rpcCall(deleteUserCreds,$root.google.firestore.admin.v1.DeleteUserCredsRequest,$root.google.protobuf.Empty,request,callback)},"name",{value:"DeleteUserCreds"});Object.defineProperty(FirestoreAdmin.prototype.getBackup=function getBackup(request,callback){return this.rpcCall(getBackup,$root.google.firestore.admin.v1.GetBackupRequest,$root.google.firestore.admin.v1.Backup,request,callback)},"name",{value:"GetBackup"});Object.defineProperty(FirestoreAdmin.prototype.listBackups=function listBackups(request,callback){return this.rpcCall(listBackups,$root.google.firestore.admin.v1.ListBackupsRequest,$root.google.firestore.admin.v1.ListBackupsResponse,request,callback)},"name",{value:"ListBackups"});Object.defineProperty(FirestoreAdmin.prototype.deleteBackup=function deleteBackup(request,callback){return this.rpcCall(deleteBackup,$root.google.firestore.admin.v1.DeleteBackupRequest,$root.google.protobuf.Empty,request,callback)},"name",{value:"DeleteBackup"});Object.defineProperty(FirestoreAdmin.prototype.restoreDatabase=function restoreDatabase(request,callback){return this.rpcCall(restoreDatabase,$root.google.firestore.admin.v1.RestoreDatabaseRequest,$root.google.longrunning.Operation,request,callback)},"name",{value:"RestoreDatabase"});Object.defineProperty(FirestoreAdmin.prototype.createBackupSchedule=function createBackupSchedule(request,callback){return this.rpcCall(createBackupSchedule,$root.google.firestore.admin.v1.CreateBackupScheduleRequest,$root.google.firestore.admin.v1.BackupSchedule,request,callback)},"name",{value:"CreateBackupSchedule"});Object.defineProperty(FirestoreAdmin.prototype.getBackupSchedule=function getBackupSchedule(request,callback){return this.rpcCall(getBackupSchedule,$root.google.firestore.admin.v1.GetBackupScheduleRequest,$root.google.firestore.admin.v1.BackupSchedule,request,callback)},"name",{value:"GetBackupSchedule"});Object.defineProperty(FirestoreAdmin.prototype.listBackupSchedules=function listBackupSchedules(request,callback){return this.rpcCall(listBackupSchedules,$root.google.firestore.admin.v1.ListBackupSchedulesRequest,$root.google.firestore.admin.v1.ListBackupSchedulesResponse,request,callback)},"name",{value:"ListBackupSchedules"});Object.defineProperty(FirestoreAdmin.prototype.updateBackupSchedule=function updateBackupSchedule(request,callback){return this.rpcCall(updateBackupSchedule,$root.google.firestore.admin.v1.UpdateBackupScheduleRequest,$root.google.firestore.admin.v1.BackupSchedule,request,callback)},"name",{value:"UpdateBackupSchedule"});Object.defineProperty(FirestoreAdmin.prototype.deleteBackupSchedule=function deleteBackupSchedule(request,callback){return this.rpcCall(deleteBackupSchedule,$root.google.firestore.admin.v1.DeleteBackupScheduleRequest,$root.google.protobuf.Empty,request,callback)},"name",{value:"DeleteBackupSchedule"});Object.defineProperty(FirestoreAdmin.prototype.cloneDatabase=function cloneDatabase(request,callback){return this.rpcCall(cloneDatabase,$root.google.firestore.admin.v1.CloneDatabaseRequest,$root.google.longrunning.Operation,request,callback)},"name",{value:"CloneDatabase"});return FirestoreAdmin}();v1.ListDatabasesRequest=function(){function ListDatabasesRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ListDatabasesRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 4:{message.showDeleted=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};ListDatabasesRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListDatabasesRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.showDeleted!=null&&message.hasOwnProperty("showDeleted"))if(typeof message.showDeleted!=="boolean")return"showDeleted: boolean expected";return null};ListDatabasesRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.ListDatabasesRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ListDatabasesRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.showDeleted!=null)message.showDeleted=Boolean(object.showDeleted);return message};ListDatabasesRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.showDeleted=false}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.showDeleted!=null&&message.hasOwnProperty("showDeleted"))object.showDeleted=message.showDeleted;return object};ListDatabasesRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ListDatabasesRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.ListDatabasesRequest"};return ListDatabasesRequest}();v1.CreateDatabaseRequest=function(){function CreateDatabaseRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.CreateDatabaseRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.database=$root.google.firestore.admin.v1.Database.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.databaseId=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};CreateDatabaseRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CreateDatabaseRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.database!=null&&message.hasOwnProperty("database")){var error=$root.google.firestore.admin.v1.Database.verify(message.database,long+1);if(error)return"database."+error}if(message.databaseId!=null&&message.hasOwnProperty("databaseId"))if(!$util.isString(message.databaseId))return"databaseId: string expected";return null};CreateDatabaseRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.CreateDatabaseRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.CreateDatabaseRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.database!=null){if(typeof object.database!=="object")throw TypeError(".google.firestore.admin.v1.CreateDatabaseRequest.database: object expected");message.database=$root.google.firestore.admin.v1.Database.fromObject(object.database,long+1)}if(object.databaseId!=null)message.databaseId=String(object.databaseId);return message};CreateDatabaseRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.database=null;object.databaseId=""}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.database!=null&&message.hasOwnProperty("database"))object.database=$root.google.firestore.admin.v1.Database.toObject(message.database,options);if(message.databaseId!=null&&message.hasOwnProperty("databaseId"))object.databaseId=message.databaseId;return object};CreateDatabaseRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CreateDatabaseRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.CreateDatabaseRequest"};return CreateDatabaseRequest}();v1.CreateDatabaseMetadata=function(){function CreateDatabaseMetadata(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.CreateDatabaseMetadata;while(reader.pos>>3){default:reader.skipType(tag&7,long);break}}return message};CreateDatabaseMetadata.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CreateDatabaseMetadata.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};CreateDatabaseMetadata.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.CreateDatabaseMetadata)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.firestore.admin.v1.CreateDatabaseMetadata};CreateDatabaseMetadata.toObject=function toObject(){return{}};CreateDatabaseMetadata.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CreateDatabaseMetadata.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.CreateDatabaseMetadata"};return CreateDatabaseMetadata}();v1.ListDatabasesResponse=function(){function ListDatabasesResponse(properties){this.databases=[];this.unreachable=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ListDatabasesResponse;while(reader.pos>>3){case 1:{if(!(message.databases&&message.databases.length))message.databases=[];message.databases.push($root.google.firestore.admin.v1.Database.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{if(!(message.unreachable&&message.unreachable.length))message.unreachable=[];message.unreachable.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};ListDatabasesResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListDatabasesResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.databases!=null&&message.hasOwnProperty("databases")){if(!Array.isArray(message.databases))return"databases: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ListDatabasesResponse;if(object.databases){if(!Array.isArray(object.databases))throw TypeError(".google.firestore.admin.v1.ListDatabasesResponse.databases: array expected");message.databases=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.GetDatabaseRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};GetDatabaseRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GetDatabaseRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};GetDatabaseRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.GetDatabaseRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.GetDatabaseRequest;if(object.name!=null)message.name=String(object.name);return message};GetDatabaseRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};GetDatabaseRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GetDatabaseRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.GetDatabaseRequest"};return GetDatabaseRequest}();v1.UpdateDatabaseRequest=function(){function UpdateDatabaseRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.UpdateDatabaseRequest;while(reader.pos>>3){case 1:{message.database=$root.google.firestore.admin.v1.Database.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.updateMask=$root.google.protobuf.FieldMask.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};UpdateDatabaseRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UpdateDatabaseRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.database!=null&&message.hasOwnProperty("database")){var error=$root.google.firestore.admin.v1.Database.verify(message.database,long+1);if(error)return"database."+error}if(message.updateMask!=null&&message.hasOwnProperty("updateMask")){var error=$root.google.protobuf.FieldMask.verify(message.updateMask,long+1);if(error)return"updateMask."+error}return null};UpdateDatabaseRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.UpdateDatabaseRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.UpdateDatabaseRequest;if(object.database!=null){if(typeof object.database!=="object")throw TypeError(".google.firestore.admin.v1.UpdateDatabaseRequest.database: object expected");message.database=$root.google.firestore.admin.v1.Database.fromObject(object.database,long+1)}if(object.updateMask!=null){if(typeof object.updateMask!=="object")throw TypeError(".google.firestore.admin.v1.UpdateDatabaseRequest.updateMask: object expected");message.updateMask=$root.google.protobuf.FieldMask.fromObject(object.updateMask,long+1)}return message};UpdateDatabaseRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.database=null;object.updateMask=null}if(message.database!=null&&message.hasOwnProperty("database"))object.database=$root.google.firestore.admin.v1.Database.toObject(message.database,options);if(message.updateMask!=null&&message.hasOwnProperty("updateMask"))object.updateMask=$root.google.protobuf.FieldMask.toObject(message.updateMask,options);return object};UpdateDatabaseRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UpdateDatabaseRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.UpdateDatabaseRequest"};return UpdateDatabaseRequest}();v1.UpdateDatabaseMetadata=function(){function UpdateDatabaseMetadata(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.UpdateDatabaseMetadata;while(reader.pos>>3){default:reader.skipType(tag&7,long);break}}return message};UpdateDatabaseMetadata.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UpdateDatabaseMetadata.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};UpdateDatabaseMetadata.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.UpdateDatabaseMetadata)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.firestore.admin.v1.UpdateDatabaseMetadata};UpdateDatabaseMetadata.toObject=function toObject(){return{}};UpdateDatabaseMetadata.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UpdateDatabaseMetadata.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.UpdateDatabaseMetadata"};return UpdateDatabaseMetadata}();v1.DeleteDatabaseRequest=function(){function DeleteDatabaseRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.DeleteDatabaseRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 3:{message.etag=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};DeleteDatabaseRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DeleteDatabaseRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.etag!=null&&message.hasOwnProperty("etag"))if(!$util.isString(message.etag))return"etag: string expected";return null};DeleteDatabaseRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.DeleteDatabaseRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.DeleteDatabaseRequest;if(object.name!=null)message.name=String(object.name);if(object.etag!=null)message.etag=String(object.etag);return message};DeleteDatabaseRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.etag=""}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.etag!=null&&message.hasOwnProperty("etag"))object.etag=message.etag;return object};DeleteDatabaseRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DeleteDatabaseRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.DeleteDatabaseRequest"};return DeleteDatabaseRequest}();v1.DeleteDatabaseMetadata=function(){function DeleteDatabaseMetadata(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.DeleteDatabaseMetadata;while(reader.pos>>3){default:reader.skipType(tag&7,long);break}}return message};DeleteDatabaseMetadata.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DeleteDatabaseMetadata.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};DeleteDatabaseMetadata.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.DeleteDatabaseMetadata)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.firestore.admin.v1.DeleteDatabaseMetadata};DeleteDatabaseMetadata.toObject=function toObject(){return{}};DeleteDatabaseMetadata.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DeleteDatabaseMetadata.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.DeleteDatabaseMetadata"};return DeleteDatabaseMetadata}();v1.CreateUserCredsRequest=function(){function CreateUserCredsRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.CreateUserCredsRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.userCreds=$root.google.firestore.admin.v1.UserCreds.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.userCredsId=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};CreateUserCredsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CreateUserCredsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.userCreds!=null&&message.hasOwnProperty("userCreds")){var error=$root.google.firestore.admin.v1.UserCreds.verify(message.userCreds,long+1);if(error)return"userCreds."+error}if(message.userCredsId!=null&&message.hasOwnProperty("userCredsId"))if(!$util.isString(message.userCredsId))return"userCredsId: string expected";return null};CreateUserCredsRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.CreateUserCredsRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.CreateUserCredsRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.userCreds!=null){if(typeof object.userCreds!=="object")throw TypeError(".google.firestore.admin.v1.CreateUserCredsRequest.userCreds: object expected");message.userCreds=$root.google.firestore.admin.v1.UserCreds.fromObject(object.userCreds,long+1)}if(object.userCredsId!=null)message.userCredsId=String(object.userCredsId);return message};CreateUserCredsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.userCreds=null;object.userCredsId=""}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.userCreds!=null&&message.hasOwnProperty("userCreds"))object.userCreds=$root.google.firestore.admin.v1.UserCreds.toObject(message.userCreds,options);if(message.userCredsId!=null&&message.hasOwnProperty("userCredsId"))object.userCredsId=message.userCredsId;return object};CreateUserCredsRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CreateUserCredsRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.CreateUserCredsRequest"};return CreateUserCredsRequest}();v1.GetUserCredsRequest=function(){function GetUserCredsRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.GetUserCredsRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};GetUserCredsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GetUserCredsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};GetUserCredsRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.GetUserCredsRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.GetUserCredsRequest;if(object.name!=null)message.name=String(object.name);return message};GetUserCredsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};GetUserCredsRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GetUserCredsRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.GetUserCredsRequest"};return GetUserCredsRequest}();v1.ListUserCredsRequest=function(){function ListUserCredsRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ListUserCredsRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ListUserCredsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListUserCredsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";return null};ListUserCredsRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.ListUserCredsRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ListUserCredsRequest;if(object.parent!=null)message.parent=String(object.parent);return message};ListUserCredsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.parent="";if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;return object};ListUserCredsRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ListUserCredsRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.ListUserCredsRequest"};return ListUserCredsRequest}();v1.ListUserCredsResponse=function(){function ListUserCredsResponse(properties){this.userCreds=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ListUserCredsResponse;while(reader.pos>>3){case 1:{if(!(message.userCreds&&message.userCreds.length))message.userCreds=[];message.userCreds.push($root.google.firestore.admin.v1.UserCreds.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};ListUserCredsResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListUserCredsResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.userCreds!=null&&message.hasOwnProperty("userCreds")){if(!Array.isArray(message.userCreds))return"userCreds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ListUserCredsResponse;if(object.userCreds){if(!Array.isArray(object.userCreds))throw TypeError(".google.firestore.admin.v1.ListUserCredsResponse.userCreds: array expected");message.userCreds=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.EnableUserCredsRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};EnableUserCredsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EnableUserCredsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};EnableUserCredsRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.EnableUserCredsRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.EnableUserCredsRequest;if(object.name!=null)message.name=String(object.name);return message};EnableUserCredsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};EnableUserCredsRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};EnableUserCredsRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.EnableUserCredsRequest"};return EnableUserCredsRequest}();v1.DisableUserCredsRequest=function(){function DisableUserCredsRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.DisableUserCredsRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};DisableUserCredsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DisableUserCredsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};DisableUserCredsRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.DisableUserCredsRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.DisableUserCredsRequest;if(object.name!=null)message.name=String(object.name);return message};DisableUserCredsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};DisableUserCredsRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DisableUserCredsRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.DisableUserCredsRequest"};return DisableUserCredsRequest}();v1.ResetUserPasswordRequest=function(){function ResetUserPasswordRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ResetUserPasswordRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ResetUserPasswordRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ResetUserPasswordRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};ResetUserPasswordRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.ResetUserPasswordRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ResetUserPasswordRequest;if(object.name!=null)message.name=String(object.name);return message};ResetUserPasswordRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};ResetUserPasswordRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ResetUserPasswordRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.ResetUserPasswordRequest"};return ResetUserPasswordRequest}();v1.DeleteUserCredsRequest=function(){function DeleteUserCredsRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.DeleteUserCredsRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};DeleteUserCredsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DeleteUserCredsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};DeleteUserCredsRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.DeleteUserCredsRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.DeleteUserCredsRequest;if(object.name!=null)message.name=String(object.name);return message};DeleteUserCredsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};DeleteUserCredsRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DeleteUserCredsRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.DeleteUserCredsRequest"};return DeleteUserCredsRequest}();v1.CreateBackupScheduleRequest=function(){function CreateBackupScheduleRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.CreateBackupScheduleRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.backupSchedule=$root.google.firestore.admin.v1.BackupSchedule.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};CreateBackupScheduleRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CreateBackupScheduleRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.backupSchedule!=null&&message.hasOwnProperty("backupSchedule")){var error=$root.google.firestore.admin.v1.BackupSchedule.verify(message.backupSchedule,long+1);if(error)return"backupSchedule."+error}return null};CreateBackupScheduleRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.CreateBackupScheduleRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.CreateBackupScheduleRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.backupSchedule!=null){if(typeof object.backupSchedule!=="object")throw TypeError(".google.firestore.admin.v1.CreateBackupScheduleRequest.backupSchedule: object expected");message.backupSchedule=$root.google.firestore.admin.v1.BackupSchedule.fromObject(object.backupSchedule,long+1)}return message};CreateBackupScheduleRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.backupSchedule=null}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.backupSchedule!=null&&message.hasOwnProperty("backupSchedule"))object.backupSchedule=$root.google.firestore.admin.v1.BackupSchedule.toObject(message.backupSchedule,options);return object};CreateBackupScheduleRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CreateBackupScheduleRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.CreateBackupScheduleRequest"};return CreateBackupScheduleRequest}();v1.GetBackupScheduleRequest=function(){function GetBackupScheduleRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.GetBackupScheduleRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};GetBackupScheduleRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GetBackupScheduleRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};GetBackupScheduleRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.GetBackupScheduleRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.GetBackupScheduleRequest;if(object.name!=null)message.name=String(object.name);return message};GetBackupScheduleRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};GetBackupScheduleRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GetBackupScheduleRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.GetBackupScheduleRequest"};return GetBackupScheduleRequest}();v1.UpdateBackupScheduleRequest=function(){function UpdateBackupScheduleRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.UpdateBackupScheduleRequest;while(reader.pos>>3){case 1:{message.backupSchedule=$root.google.firestore.admin.v1.BackupSchedule.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.updateMask=$root.google.protobuf.FieldMask.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};UpdateBackupScheduleRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UpdateBackupScheduleRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.backupSchedule!=null&&message.hasOwnProperty("backupSchedule")){var error=$root.google.firestore.admin.v1.BackupSchedule.verify(message.backupSchedule,long+1);if(error)return"backupSchedule."+error}if(message.updateMask!=null&&message.hasOwnProperty("updateMask")){var error=$root.google.protobuf.FieldMask.verify(message.updateMask,long+1);if(error)return"updateMask."+error}return null};UpdateBackupScheduleRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.UpdateBackupScheduleRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.UpdateBackupScheduleRequest;if(object.backupSchedule!=null){if(typeof object.backupSchedule!=="object")throw TypeError(".google.firestore.admin.v1.UpdateBackupScheduleRequest.backupSchedule: object expected");message.backupSchedule=$root.google.firestore.admin.v1.BackupSchedule.fromObject(object.backupSchedule,long+1)}if(object.updateMask!=null){if(typeof object.updateMask!=="object")throw TypeError(".google.firestore.admin.v1.UpdateBackupScheduleRequest.updateMask: object expected");message.updateMask=$root.google.protobuf.FieldMask.fromObject(object.updateMask,long+1)}return message};UpdateBackupScheduleRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.backupSchedule=null;object.updateMask=null}if(message.backupSchedule!=null&&message.hasOwnProperty("backupSchedule"))object.backupSchedule=$root.google.firestore.admin.v1.BackupSchedule.toObject(message.backupSchedule,options);if(message.updateMask!=null&&message.hasOwnProperty("updateMask"))object.updateMask=$root.google.protobuf.FieldMask.toObject(message.updateMask,options);return object};UpdateBackupScheduleRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UpdateBackupScheduleRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.UpdateBackupScheduleRequest"};return UpdateBackupScheduleRequest}();v1.ListBackupSchedulesRequest=function(){function ListBackupSchedulesRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ListBackupSchedulesRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ListBackupSchedulesRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListBackupSchedulesRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";return null};ListBackupSchedulesRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.ListBackupSchedulesRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ListBackupSchedulesRequest;if(object.parent!=null)message.parent=String(object.parent);return message};ListBackupSchedulesRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.parent="";if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;return object};ListBackupSchedulesRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ListBackupSchedulesRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.ListBackupSchedulesRequest"};return ListBackupSchedulesRequest}();v1.ListBackupSchedulesResponse=function(){function ListBackupSchedulesResponse(properties){this.backupSchedules=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ListBackupSchedulesResponse;while(reader.pos>>3){case 1:{if(!(message.backupSchedules&&message.backupSchedules.length))message.backupSchedules=[];message.backupSchedules.push($root.google.firestore.admin.v1.BackupSchedule.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};ListBackupSchedulesResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListBackupSchedulesResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.backupSchedules!=null&&message.hasOwnProperty("backupSchedules")){if(!Array.isArray(message.backupSchedules))return"backupSchedules: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ListBackupSchedulesResponse;if(object.backupSchedules){if(!Array.isArray(object.backupSchedules))throw TypeError(".google.firestore.admin.v1.ListBackupSchedulesResponse.backupSchedules: array expected");message.backupSchedules=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.DeleteBackupScheduleRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};DeleteBackupScheduleRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DeleteBackupScheduleRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};DeleteBackupScheduleRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.DeleteBackupScheduleRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.DeleteBackupScheduleRequest;if(object.name!=null)message.name=String(object.name);return message};DeleteBackupScheduleRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};DeleteBackupScheduleRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DeleteBackupScheduleRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.DeleteBackupScheduleRequest"};return DeleteBackupScheduleRequest}();v1.CreateIndexRequest=function(){function CreateIndexRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.CreateIndexRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.index=$root.google.firestore.admin.v1.Index.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};CreateIndexRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CreateIndexRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.index!=null&&message.hasOwnProperty("index")){var error=$root.google.firestore.admin.v1.Index.verify(message.index,long+1);if(error)return"index."+error}return null};CreateIndexRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.CreateIndexRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.CreateIndexRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.index!=null){if(typeof object.index!=="object")throw TypeError(".google.firestore.admin.v1.CreateIndexRequest.index: object expected");message.index=$root.google.firestore.admin.v1.Index.fromObject(object.index,long+1)}return message};CreateIndexRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.index=null}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.index!=null&&message.hasOwnProperty("index"))object.index=$root.google.firestore.admin.v1.Index.toObject(message.index,options);return object};CreateIndexRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CreateIndexRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.CreateIndexRequest"};return CreateIndexRequest}();v1.ListIndexesRequest=function(){function ListIndexesRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ListIndexesRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.filter=reader.string();break}case 3:{message.pageSize=reader.int32();break}case 4:{message.pageToken=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ListIndexesRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListIndexesRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.filter!=null&&message.hasOwnProperty("filter"))if(!$util.isString(message.filter))return"filter: string expected";if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))if(!$util.isInteger(message.pageSize))return"pageSize: integer expected";if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))if(!$util.isString(message.pageToken))return"pageToken: string expected";return null};ListIndexesRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.ListIndexesRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ListIndexesRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.filter!=null)message.filter=String(object.filter);if(object.pageSize!=null)message.pageSize=object.pageSize|0;if(object.pageToken!=null)message.pageToken=String(object.pageToken);return message};ListIndexesRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.filter="";object.pageSize=0;object.pageToken=""}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.filter!=null&&message.hasOwnProperty("filter"))object.filter=message.filter;if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))object.pageSize=message.pageSize;if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))object.pageToken=message.pageToken;return object};ListIndexesRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ListIndexesRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.ListIndexesRequest"};return ListIndexesRequest}();v1.ListIndexesResponse=function(){function ListIndexesResponse(properties){this.indexes=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ListIndexesResponse;while(reader.pos>>3){case 1:{if(!(message.indexes&&message.indexes.length))message.indexes=[];message.indexes.push($root.google.firestore.admin.v1.Index.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.nextPageToken=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ListIndexesResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListIndexesResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.indexes!=null&&message.hasOwnProperty("indexes")){if(!Array.isArray(message.indexes))return"indexes: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ListIndexesResponse;if(object.indexes){if(!Array.isArray(object.indexes))throw TypeError(".google.firestore.admin.v1.ListIndexesResponse.indexes: array expected");message.indexes=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.GetIndexRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};GetIndexRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GetIndexRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};GetIndexRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.GetIndexRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.GetIndexRequest;if(object.name!=null)message.name=String(object.name);return message};GetIndexRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};GetIndexRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GetIndexRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.GetIndexRequest"};return GetIndexRequest}();v1.DeleteIndexRequest=function(){function DeleteIndexRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.DeleteIndexRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};DeleteIndexRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DeleteIndexRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};DeleteIndexRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.DeleteIndexRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.DeleteIndexRequest;if(object.name!=null)message.name=String(object.name);return message};DeleteIndexRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};DeleteIndexRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DeleteIndexRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.DeleteIndexRequest"};return DeleteIndexRequest}();v1.UpdateFieldRequest=function(){function UpdateFieldRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.UpdateFieldRequest;while(reader.pos>>3){case 1:{message.field=$root.google.firestore.admin.v1.Field.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.updateMask=$root.google.protobuf.FieldMask.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};UpdateFieldRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UpdateFieldRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.field!=null&&message.hasOwnProperty("field")){var error=$root.google.firestore.admin.v1.Field.verify(message.field,long+1);if(error)return"field."+error}if(message.updateMask!=null&&message.hasOwnProperty("updateMask")){var error=$root.google.protobuf.FieldMask.verify(message.updateMask,long+1);if(error)return"updateMask."+error}return null};UpdateFieldRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.UpdateFieldRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.UpdateFieldRequest;if(object.field!=null){if(typeof object.field!=="object")throw TypeError(".google.firestore.admin.v1.UpdateFieldRequest.field: object expected");message.field=$root.google.firestore.admin.v1.Field.fromObject(object.field,long+1)}if(object.updateMask!=null){if(typeof object.updateMask!=="object")throw TypeError(".google.firestore.admin.v1.UpdateFieldRequest.updateMask: object expected");message.updateMask=$root.google.protobuf.FieldMask.fromObject(object.updateMask,long+1)}return message};UpdateFieldRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.field=null;object.updateMask=null}if(message.field!=null&&message.hasOwnProperty("field"))object.field=$root.google.firestore.admin.v1.Field.toObject(message.field,options);if(message.updateMask!=null&&message.hasOwnProperty("updateMask"))object.updateMask=$root.google.protobuf.FieldMask.toObject(message.updateMask,options);return object};UpdateFieldRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UpdateFieldRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.UpdateFieldRequest"};return UpdateFieldRequest}();v1.GetFieldRequest=function(){function GetFieldRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.GetFieldRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};GetFieldRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GetFieldRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};GetFieldRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.GetFieldRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.GetFieldRequest;if(object.name!=null)message.name=String(object.name);return message};GetFieldRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};GetFieldRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GetFieldRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.GetFieldRequest"};return GetFieldRequest}();v1.ListFieldsRequest=function(){function ListFieldsRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ListFieldsRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.filter=reader.string();break}case 3:{message.pageSize=reader.int32();break}case 4:{message.pageToken=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ListFieldsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListFieldsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.filter!=null&&message.hasOwnProperty("filter"))if(!$util.isString(message.filter))return"filter: string expected";if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))if(!$util.isInteger(message.pageSize))return"pageSize: integer expected";if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))if(!$util.isString(message.pageToken))return"pageToken: string expected";return null};ListFieldsRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.ListFieldsRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ListFieldsRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.filter!=null)message.filter=String(object.filter);if(object.pageSize!=null)message.pageSize=object.pageSize|0;if(object.pageToken!=null)message.pageToken=String(object.pageToken);return message};ListFieldsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.filter="";object.pageSize=0;object.pageToken=""}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.filter!=null&&message.hasOwnProperty("filter"))object.filter=message.filter;if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))object.pageSize=message.pageSize;if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))object.pageToken=message.pageToken;return object};ListFieldsRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ListFieldsRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.ListFieldsRequest"};return ListFieldsRequest}();v1.ListFieldsResponse=function(){function ListFieldsResponse(properties){this.fields=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ListFieldsResponse;while(reader.pos>>3){case 1:{if(!(message.fields&&message.fields.length))message.fields=[];message.fields.push($root.google.firestore.admin.v1.Field.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.nextPageToken=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ListFieldsResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListFieldsResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.fields!=null&&message.hasOwnProperty("fields")){if(!Array.isArray(message.fields))return"fields: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ListFieldsResponse;if(object.fields){if(!Array.isArray(object.fields))throw TypeError(".google.firestore.admin.v1.ListFieldsResponse.fields: array expected");message.fields=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ExportDocumentsRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{if(!(message.collectionIds&&message.collectionIds.length))message.collectionIds=[];message.collectionIds.push(reader.string());break}case 3:{message.outputUriPrefix=reader.string();break}case 4:{if(!(message.namespaceIds&&message.namespaceIds.length))message.namespaceIds=[];message.namespaceIds.push(reader.string());break}case 5:{message.snapshotTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ExportDocumentsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExportDocumentsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.collectionIds!=null&&message.hasOwnProperty("collectionIds")){if(!Array.isArray(message.collectionIds))return"collectionIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ExportDocumentsRequest;if(object.name!=null)message.name=String(object.name);if(object.collectionIds){if(!Array.isArray(object.collectionIds))throw TypeError(".google.firestore.admin.v1.ExportDocumentsRequest.collectionIds: array expected");message.collectionIds=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ImportDocumentsRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{if(!(message.collectionIds&&message.collectionIds.length))message.collectionIds=[];message.collectionIds.push(reader.string());break}case 3:{message.inputUriPrefix=reader.string();break}case 4:{if(!(message.namespaceIds&&message.namespaceIds.length))message.namespaceIds=[];message.namespaceIds.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};ImportDocumentsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ImportDocumentsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.collectionIds!=null&&message.hasOwnProperty("collectionIds")){if(!Array.isArray(message.collectionIds))return"collectionIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ImportDocumentsRequest;if(object.name!=null)message.name=String(object.name);if(object.collectionIds){if(!Array.isArray(object.collectionIds))throw TypeError(".google.firestore.admin.v1.ImportDocumentsRequest.collectionIds: array expected");message.collectionIds=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.BulkDeleteDocumentsRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{if(!(message.collectionIds&&message.collectionIds.length))message.collectionIds=[];message.collectionIds.push(reader.string());break}case 3:{if(!(message.namespaceIds&&message.namespaceIds.length))message.namespaceIds=[];message.namespaceIds.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};BulkDeleteDocumentsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BulkDeleteDocumentsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.collectionIds!=null&&message.hasOwnProperty("collectionIds")){if(!Array.isArray(message.collectionIds))return"collectionIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.BulkDeleteDocumentsRequest;if(object.name!=null)message.name=String(object.name);if(object.collectionIds){if(!Array.isArray(object.collectionIds))throw TypeError(".google.firestore.admin.v1.BulkDeleteDocumentsRequest.collectionIds: array expected");message.collectionIds=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.BulkDeleteDocumentsResponse;while(reader.pos>>3){default:reader.skipType(tag&7,long);break}}return message};BulkDeleteDocumentsResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BulkDeleteDocumentsResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};BulkDeleteDocumentsResponse.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.BulkDeleteDocumentsResponse)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.firestore.admin.v1.BulkDeleteDocumentsResponse};BulkDeleteDocumentsResponse.toObject=function toObject(){return{}};BulkDeleteDocumentsResponse.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BulkDeleteDocumentsResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.BulkDeleteDocumentsResponse"};return BulkDeleteDocumentsResponse}();v1.GetBackupRequest=function(){function GetBackupRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.GetBackupRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};GetBackupRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GetBackupRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};GetBackupRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.GetBackupRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.GetBackupRequest;if(object.name!=null)message.name=String(object.name);return message};GetBackupRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};GetBackupRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GetBackupRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.GetBackupRequest"};return GetBackupRequest}();v1.ListBackupsRequest=function(){function ListBackupsRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ListBackupsRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.filter=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ListBackupsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListBackupsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.filter!=null&&message.hasOwnProperty("filter"))if(!$util.isString(message.filter))return"filter: string expected";return null};ListBackupsRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.ListBackupsRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ListBackupsRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.filter!=null)message.filter=String(object.filter);return message};ListBackupsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.filter=""}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.filter!=null&&message.hasOwnProperty("filter"))object.filter=message.filter;return object};ListBackupsRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ListBackupsRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.ListBackupsRequest"};return ListBackupsRequest}();v1.ListBackupsResponse=function(){function ListBackupsResponse(properties){this.backups=[];this.unreachable=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ListBackupsResponse;while(reader.pos>>3){case 1:{if(!(message.backups&&message.backups.length))message.backups=[];message.backups.push($root.google.firestore.admin.v1.Backup.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{if(!(message.unreachable&&message.unreachable.length))message.unreachable=[];message.unreachable.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};ListBackupsResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListBackupsResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.backups!=null&&message.hasOwnProperty("backups")){if(!Array.isArray(message.backups))return"backups: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ListBackupsResponse;if(object.backups){if(!Array.isArray(object.backups))throw TypeError(".google.firestore.admin.v1.ListBackupsResponse.backups: array expected");message.backups=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.DeleteBackupRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};DeleteBackupRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DeleteBackupRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};DeleteBackupRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.DeleteBackupRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.DeleteBackupRequest;if(object.name!=null)message.name=String(object.name);return message};DeleteBackupRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};DeleteBackupRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DeleteBackupRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.DeleteBackupRequest"};return DeleteBackupRequest}();v1.RestoreDatabaseRequest=function(){function RestoreDatabaseRequest(properties){this.tags={};if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.RestoreDatabaseRequest,key,value;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.databaseId=reader.string();break}case 3:{message.backup=reader.string();break}case 9:{message.encryptionConfig=$root.google.firestore.admin.v1.Database.EncryptionConfig.decode(reader,reader.uint32(),undefined,long+1);break}case 10:{if(message.tags===$util.emptyObject)message.tags={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.tags,key);message.tags[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};RestoreDatabaseRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RestoreDatabaseRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.databaseId!=null&&message.hasOwnProperty("databaseId"))if(!$util.isString(message.databaseId))return"databaseId: string expected";if(message.backup!=null&&message.hasOwnProperty("backup"))if(!$util.isString(message.backup))return"backup: string expected";if(message.encryptionConfig!=null&&message.hasOwnProperty("encryptionConfig")){var error=$root.google.firestore.admin.v1.Database.EncryptionConfig.verify(message.encryptionConfig,long+1);if(error)return"encryptionConfig."+error}if(message.tags!=null&&message.hasOwnProperty("tags")){if(!$util.isObject(message.tags))return"tags: object expected";var key=Object.keys(message.tags);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.RestoreDatabaseRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.databaseId!=null)message.databaseId=String(object.databaseId);if(object.backup!=null)message.backup=String(object.backup);if(object.encryptionConfig!=null){if(typeof object.encryptionConfig!=="object")throw TypeError(".google.firestore.admin.v1.RestoreDatabaseRequest.encryptionConfig: object expected");message.encryptionConfig=$root.google.firestore.admin.v1.Database.EncryptionConfig.fromObject(object.encryptionConfig,long+1)}if(object.tags){if(typeof object.tags!=="object")throw TypeError(".google.firestore.admin.v1.RestoreDatabaseRequest.tags: object expected");message.tags={};for(var keys=Object.keys(object.tags),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.CloneDatabaseRequest,key,value;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.databaseId=reader.string();break}case 6:{message.pitrSnapshot=$root.google.firestore.admin.v1.PitrSnapshot.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.encryptionConfig=$root.google.firestore.admin.v1.Database.EncryptionConfig.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{if(message.tags===$util.emptyObject)message.tags={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.tags,key);message.tags[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};CloneDatabaseRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CloneDatabaseRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.databaseId!=null&&message.hasOwnProperty("databaseId"))if(!$util.isString(message.databaseId))return"databaseId: string expected";if(message.pitrSnapshot!=null&&message.hasOwnProperty("pitrSnapshot")){var error=$root.google.firestore.admin.v1.PitrSnapshot.verify(message.pitrSnapshot,long+1);if(error)return"pitrSnapshot."+error}if(message.encryptionConfig!=null&&message.hasOwnProperty("encryptionConfig")){var error=$root.google.firestore.admin.v1.Database.EncryptionConfig.verify(message.encryptionConfig,long+1);if(error)return"encryptionConfig."+error}if(message.tags!=null&&message.hasOwnProperty("tags")){if(!$util.isObject(message.tags))return"tags: object expected";var key=Object.keys(message.tags);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.CloneDatabaseRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.databaseId!=null)message.databaseId=String(object.databaseId);if(object.pitrSnapshot!=null){if(typeof object.pitrSnapshot!=="object")throw TypeError(".google.firestore.admin.v1.CloneDatabaseRequest.pitrSnapshot: object expected");message.pitrSnapshot=$root.google.firestore.admin.v1.PitrSnapshot.fromObject(object.pitrSnapshot,long+1)}if(object.encryptionConfig!=null){if(typeof object.encryptionConfig!=="object")throw TypeError(".google.firestore.admin.v1.CloneDatabaseRequest.encryptionConfig: object expected");message.encryptionConfig=$root.google.firestore.admin.v1.Database.EncryptionConfig.fromObject(object.encryptionConfig,long+1)}if(object.tags){if(typeof object.tags!=="object")throw TypeError(".google.firestore.admin.v1.CloneDatabaseRequest.tags: object expected");message.tags={};for(var keys=Object.keys(object.tags),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.IndexOperationMetadata;while(reader.pos>>3){case 1:{message.startTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.endTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.index=reader.string();break}case 4:{message.state=reader.int32();break}case 5:{message.progressDocuments=$root.google.firestore.admin.v1.Progress.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.progressBytes=$root.google.firestore.admin.v1.Progress.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};IndexOperationMetadata.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};IndexOperationMetadata.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.startTime!=null&&message.hasOwnProperty("startTime")){var error=$root.google.protobuf.Timestamp.verify(message.startTime,long+1);if(error)return"startTime."+error}if(message.endTime!=null&&message.hasOwnProperty("endTime")){var error=$root.google.protobuf.Timestamp.verify(message.endTime,long+1);if(error)return"endTime."+error}if(message.index!=null&&message.hasOwnProperty("index"))if(!$util.isString(message.index))return"index: string expected";if(message.state!=null&&message.hasOwnProperty("state"))switch(message.state){default:return"state: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:break}if(message.progressDocuments!=null&&message.hasOwnProperty("progressDocuments")){var error=$root.google.firestore.admin.v1.Progress.verify(message.progressDocuments,long+1);if(error)return"progressDocuments."+error}if(message.progressBytes!=null&&message.hasOwnProperty("progressBytes")){var error=$root.google.firestore.admin.v1.Progress.verify(message.progressBytes,long+1);if(error)return"progressBytes."+error}return null};IndexOperationMetadata.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.IndexOperationMetadata)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.IndexOperationMetadata;if(object.startTime!=null){if(typeof object.startTime!=="object")throw TypeError(".google.firestore.admin.v1.IndexOperationMetadata.startTime: object expected");message.startTime=$root.google.protobuf.Timestamp.fromObject(object.startTime,long+1)}if(object.endTime!=null){if(typeof object.endTime!=="object")throw TypeError(".google.firestore.admin.v1.IndexOperationMetadata.endTime: object expected");message.endTime=$root.google.protobuf.Timestamp.fromObject(object.endTime,long+1)}if(object.index!=null)message.index=String(object.index);switch(object.state){default:if(typeof object.state==="number"){message.state=object.state;break}break;case"OPERATION_STATE_UNSPECIFIED":case 0:message.state=0;break;case"INITIALIZING":case 1:message.state=1;break;case"PROCESSING":case 2:message.state=2;break;case"CANCELLING":case 3:message.state=3;break;case"FINALIZING":case 4:message.state=4;break;case"SUCCESSFUL":case 5:message.state=5;break;case"FAILED":case 6:message.state=6;break;case"CANCELLED":case 7:message.state=7;break}if(object.progressDocuments!=null){if(typeof object.progressDocuments!=="object")throw TypeError(".google.firestore.admin.v1.IndexOperationMetadata.progressDocuments: object expected");message.progressDocuments=$root.google.firestore.admin.v1.Progress.fromObject(object.progressDocuments,long+1)}if(object.progressBytes!=null){if(typeof object.progressBytes!=="object")throw TypeError(".google.firestore.admin.v1.IndexOperationMetadata.progressBytes: object expected");message.progressBytes=$root.google.firestore.admin.v1.Progress.fromObject(object.progressBytes,long+1)}return message};IndexOperationMetadata.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.startTime=null;object.endTime=null;object.index="";object.state=options.enums===String?"OPERATION_STATE_UNSPECIFIED":0;object.progressDocuments=null;object.progressBytes=null}if(message.startTime!=null&&message.hasOwnProperty("startTime"))object.startTime=$root.google.protobuf.Timestamp.toObject(message.startTime,options);if(message.endTime!=null&&message.hasOwnProperty("endTime"))object.endTime=$root.google.protobuf.Timestamp.toObject(message.endTime,options);if(message.index!=null&&message.hasOwnProperty("index"))object.index=message.index;if(message.state!=null&&message.hasOwnProperty("state"))object.state=options.enums===String?$root.google.firestore.admin.v1.OperationState[message.state]===undefined?message.state:$root.google.firestore.admin.v1.OperationState[message.state]:message.state;if(message.progressDocuments!=null&&message.hasOwnProperty("progressDocuments"))object.progressDocuments=$root.google.firestore.admin.v1.Progress.toObject(message.progressDocuments,options);if(message.progressBytes!=null&&message.hasOwnProperty("progressBytes"))object.progressBytes=$root.google.firestore.admin.v1.Progress.toObject(message.progressBytes,options);return object};IndexOperationMetadata.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};IndexOperationMetadata.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.IndexOperationMetadata"};return IndexOperationMetadata}();v1.FieldOperationMetadata=function(){function FieldOperationMetadata(properties){this.indexConfigDeltas=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.FieldOperationMetadata;while(reader.pos>>3){case 1:{message.startTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.endTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.field=reader.string();break}case 4:{if(!(message.indexConfigDeltas&&message.indexConfigDeltas.length))message.indexConfigDeltas=[];message.indexConfigDeltas.push($root.google.firestore.admin.v1.FieldOperationMetadata.IndexConfigDelta.decode(reader,reader.uint32(),undefined,long+1));break}case 5:{message.state=reader.int32();break}case 6:{message.progressDocuments=$root.google.firestore.admin.v1.Progress.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.progressBytes=$root.google.firestore.admin.v1.Progress.decode(reader,reader.uint32(),undefined,long+1);break}case 8:{message.ttlConfigDelta=$root.google.firestore.admin.v1.FieldOperationMetadata.TtlConfigDelta.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};FieldOperationMetadata.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FieldOperationMetadata.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.startTime!=null&&message.hasOwnProperty("startTime")){var error=$root.google.protobuf.Timestamp.verify(message.startTime,long+1);if(error)return"startTime."+error}if(message.endTime!=null&&message.hasOwnProperty("endTime")){var error=$root.google.protobuf.Timestamp.verify(message.endTime,long+1);if(error)return"endTime."+error}if(message.field!=null&&message.hasOwnProperty("field"))if(!$util.isString(message.field))return"field: string expected";if(message.indexConfigDeltas!=null&&message.hasOwnProperty("indexConfigDeltas")){if(!Array.isArray(message.indexConfigDeltas))return"indexConfigDeltas: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.FieldOperationMetadata;if(object.startTime!=null){if(typeof object.startTime!=="object")throw TypeError(".google.firestore.admin.v1.FieldOperationMetadata.startTime: object expected");message.startTime=$root.google.protobuf.Timestamp.fromObject(object.startTime,long+1)}if(object.endTime!=null){if(typeof object.endTime!=="object")throw TypeError(".google.firestore.admin.v1.FieldOperationMetadata.endTime: object expected");message.endTime=$root.google.protobuf.Timestamp.fromObject(object.endTime,long+1)}if(object.field!=null)message.field=String(object.field);if(object.indexConfigDeltas){if(!Array.isArray(object.indexConfigDeltas))throw TypeError(".google.firestore.admin.v1.FieldOperationMetadata.indexConfigDeltas: array expected");message.indexConfigDeltas=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.FieldOperationMetadata.IndexConfigDelta;while(reader.pos>>3){case 1:{message.changeType=reader.int32();break}case 2:{message.index=$root.google.firestore.admin.v1.Index.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};IndexConfigDelta.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};IndexConfigDelta.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.changeType!=null&&message.hasOwnProperty("changeType"))switch(message.changeType){default:return"changeType: enum value expected";case 0:case 1:case 2:break}if(message.index!=null&&message.hasOwnProperty("index")){var error=$root.google.firestore.admin.v1.Index.verify(message.index,long+1);if(error)return"index."+error}return null};IndexConfigDelta.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.FieldOperationMetadata.IndexConfigDelta)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.FieldOperationMetadata.IndexConfigDelta;switch(object.changeType){default:if(typeof object.changeType==="number"){message.changeType=object.changeType;break}break;case"CHANGE_TYPE_UNSPECIFIED":case 0:message.changeType=0;break;case"ADD":case 1:message.changeType=1;break;case"REMOVE":case 2:message.changeType=2;break}if(object.index!=null){if(typeof object.index!=="object")throw TypeError(".google.firestore.admin.v1.FieldOperationMetadata.IndexConfigDelta.index: object expected");message.index=$root.google.firestore.admin.v1.Index.fromObject(object.index,long+1)}return message};IndexConfigDelta.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.changeType=options.enums===String?"CHANGE_TYPE_UNSPECIFIED":0;object.index=null}if(message.changeType!=null&&message.hasOwnProperty("changeType"))object.changeType=options.enums===String?$root.google.firestore.admin.v1.FieldOperationMetadata.IndexConfigDelta.ChangeType[message.changeType]===undefined?message.changeType:$root.google.firestore.admin.v1.FieldOperationMetadata.IndexConfigDelta.ChangeType[message.changeType]:message.changeType;if(message.index!=null&&message.hasOwnProperty("index"))object.index=$root.google.firestore.admin.v1.Index.toObject(message.index,options);return object};IndexConfigDelta.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};IndexConfigDelta.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.FieldOperationMetadata.IndexConfigDelta"};IndexConfigDelta.ChangeType=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="CHANGE_TYPE_UNSPECIFIED"]=0;values[valuesById[1]="ADD"]=1;values[valuesById[2]="REMOVE"]=2;return values}();return IndexConfigDelta}();FieldOperationMetadata.TtlConfigDelta=function(){function TtlConfigDelta(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.FieldOperationMetadata.TtlConfigDelta;while(reader.pos>>3){case 1:{message.changeType=reader.int32();break}case 3:{message.expirationOffset=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};TtlConfigDelta.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};TtlConfigDelta.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.changeType!=null&&message.hasOwnProperty("changeType"))switch(message.changeType){default:return"changeType: enum value expected";case 0:case 1:case 2:break}if(message.expirationOffset!=null&&message.hasOwnProperty("expirationOffset")){var error=$root.google.protobuf.Duration.verify(message.expirationOffset,long+1);if(error)return"expirationOffset."+error}return null};TtlConfigDelta.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.FieldOperationMetadata.TtlConfigDelta)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.FieldOperationMetadata.TtlConfigDelta;switch(object.changeType){default:if(typeof object.changeType==="number"){message.changeType=object.changeType;break}break;case"CHANGE_TYPE_UNSPECIFIED":case 0:message.changeType=0;break;case"ADD":case 1:message.changeType=1;break;case"REMOVE":case 2:message.changeType=2;break}if(object.expirationOffset!=null){if(typeof object.expirationOffset!=="object")throw TypeError(".google.firestore.admin.v1.FieldOperationMetadata.TtlConfigDelta.expirationOffset: object expected");message.expirationOffset=$root.google.protobuf.Duration.fromObject(object.expirationOffset,long+1)}return message};TtlConfigDelta.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.changeType=options.enums===String?"CHANGE_TYPE_UNSPECIFIED":0;object.expirationOffset=null}if(message.changeType!=null&&message.hasOwnProperty("changeType"))object.changeType=options.enums===String?$root.google.firestore.admin.v1.FieldOperationMetadata.TtlConfigDelta.ChangeType[message.changeType]===undefined?message.changeType:$root.google.firestore.admin.v1.FieldOperationMetadata.TtlConfigDelta.ChangeType[message.changeType]:message.changeType;if(message.expirationOffset!=null&&message.hasOwnProperty("expirationOffset"))object.expirationOffset=$root.google.protobuf.Duration.toObject(message.expirationOffset,options);return object};TtlConfigDelta.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};TtlConfigDelta.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.FieldOperationMetadata.TtlConfigDelta"};TtlConfigDelta.ChangeType=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="CHANGE_TYPE_UNSPECIFIED"]=0;values[valuesById[1]="ADD"]=1;values[valuesById[2]="REMOVE"]=2;return values}();return TtlConfigDelta}();return FieldOperationMetadata}();v1.ExportDocumentsMetadata=function(){function ExportDocumentsMetadata(properties){this.collectionIds=[];this.namespaceIds=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ExportDocumentsMetadata;while(reader.pos>>3){case 1:{message.startTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.endTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.operationState=reader.int32();break}case 4:{message.progressDocuments=$root.google.firestore.admin.v1.Progress.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.progressBytes=$root.google.firestore.admin.v1.Progress.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{if(!(message.collectionIds&&message.collectionIds.length))message.collectionIds=[];message.collectionIds.push(reader.string());break}case 7:{message.outputUriPrefix=reader.string();break}case 8:{if(!(message.namespaceIds&&message.namespaceIds.length))message.namespaceIds=[];message.namespaceIds.push(reader.string());break}case 9:{message.snapshotTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ExportDocumentsMetadata.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExportDocumentsMetadata.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.startTime!=null&&message.hasOwnProperty("startTime")){var error=$root.google.protobuf.Timestamp.verify(message.startTime,long+1);if(error)return"startTime."+error}if(message.endTime!=null&&message.hasOwnProperty("endTime")){var error=$root.google.protobuf.Timestamp.verify(message.endTime,long+1);if(error)return"endTime."+error}if(message.operationState!=null&&message.hasOwnProperty("operationState"))switch(message.operationState){default:return"operationState: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:break}if(message.progressDocuments!=null&&message.hasOwnProperty("progressDocuments")){var error=$root.google.firestore.admin.v1.Progress.verify(message.progressDocuments,long+1);if(error)return"progressDocuments."+error}if(message.progressBytes!=null&&message.hasOwnProperty("progressBytes")){var error=$root.google.firestore.admin.v1.Progress.verify(message.progressBytes,long+1);if(error)return"progressBytes."+error}if(message.collectionIds!=null&&message.hasOwnProperty("collectionIds")){if(!Array.isArray(message.collectionIds))return"collectionIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ExportDocumentsMetadata;if(object.startTime!=null){if(typeof object.startTime!=="object")throw TypeError(".google.firestore.admin.v1.ExportDocumentsMetadata.startTime: object expected");message.startTime=$root.google.protobuf.Timestamp.fromObject(object.startTime,long+1)}if(object.endTime!=null){if(typeof object.endTime!=="object")throw TypeError(".google.firestore.admin.v1.ExportDocumentsMetadata.endTime: object expected");message.endTime=$root.google.protobuf.Timestamp.fromObject(object.endTime,long+1)}switch(object.operationState){default:if(typeof object.operationState==="number"){message.operationState=object.operationState;break}break;case"OPERATION_STATE_UNSPECIFIED":case 0:message.operationState=0;break;case"INITIALIZING":case 1:message.operationState=1;break;case"PROCESSING":case 2:message.operationState=2;break;case"CANCELLING":case 3:message.operationState=3;break;case"FINALIZING":case 4:message.operationState=4;break;case"SUCCESSFUL":case 5:message.operationState=5;break;case"FAILED":case 6:message.operationState=6;break;case"CANCELLED":case 7:message.operationState=7;break}if(object.progressDocuments!=null){if(typeof object.progressDocuments!=="object")throw TypeError(".google.firestore.admin.v1.ExportDocumentsMetadata.progressDocuments: object expected");message.progressDocuments=$root.google.firestore.admin.v1.Progress.fromObject(object.progressDocuments,long+1)}if(object.progressBytes!=null){if(typeof object.progressBytes!=="object")throw TypeError(".google.firestore.admin.v1.ExportDocumentsMetadata.progressBytes: object expected");message.progressBytes=$root.google.firestore.admin.v1.Progress.fromObject(object.progressBytes,long+1)}if(object.collectionIds){if(!Array.isArray(object.collectionIds))throw TypeError(".google.firestore.admin.v1.ExportDocumentsMetadata.collectionIds: array expected");message.collectionIds=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ImportDocumentsMetadata;while(reader.pos>>3){case 1:{message.startTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.endTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.operationState=reader.int32();break}case 4:{message.progressDocuments=$root.google.firestore.admin.v1.Progress.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.progressBytes=$root.google.firestore.admin.v1.Progress.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{if(!(message.collectionIds&&message.collectionIds.length))message.collectionIds=[];message.collectionIds.push(reader.string());break}case 7:{message.inputUriPrefix=reader.string();break}case 8:{if(!(message.namespaceIds&&message.namespaceIds.length))message.namespaceIds=[];message.namespaceIds.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};ImportDocumentsMetadata.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ImportDocumentsMetadata.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.startTime!=null&&message.hasOwnProperty("startTime")){var error=$root.google.protobuf.Timestamp.verify(message.startTime,long+1);if(error)return"startTime."+error}if(message.endTime!=null&&message.hasOwnProperty("endTime")){var error=$root.google.protobuf.Timestamp.verify(message.endTime,long+1);if(error)return"endTime."+error}if(message.operationState!=null&&message.hasOwnProperty("operationState"))switch(message.operationState){default:return"operationState: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:break}if(message.progressDocuments!=null&&message.hasOwnProperty("progressDocuments")){var error=$root.google.firestore.admin.v1.Progress.verify(message.progressDocuments,long+1);if(error)return"progressDocuments."+error}if(message.progressBytes!=null&&message.hasOwnProperty("progressBytes")){var error=$root.google.firestore.admin.v1.Progress.verify(message.progressBytes,long+1);if(error)return"progressBytes."+error}if(message.collectionIds!=null&&message.hasOwnProperty("collectionIds")){if(!Array.isArray(message.collectionIds))return"collectionIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ImportDocumentsMetadata;if(object.startTime!=null){if(typeof object.startTime!=="object")throw TypeError(".google.firestore.admin.v1.ImportDocumentsMetadata.startTime: object expected");message.startTime=$root.google.protobuf.Timestamp.fromObject(object.startTime,long+1)}if(object.endTime!=null){if(typeof object.endTime!=="object")throw TypeError(".google.firestore.admin.v1.ImportDocumentsMetadata.endTime: object expected");message.endTime=$root.google.protobuf.Timestamp.fromObject(object.endTime,long+1)}switch(object.operationState){default:if(typeof object.operationState==="number"){message.operationState=object.operationState;break}break;case"OPERATION_STATE_UNSPECIFIED":case 0:message.operationState=0;break;case"INITIALIZING":case 1:message.operationState=1;break;case"PROCESSING":case 2:message.operationState=2;break;case"CANCELLING":case 3:message.operationState=3;break;case"FINALIZING":case 4:message.operationState=4;break;case"SUCCESSFUL":case 5:message.operationState=5;break;case"FAILED":case 6:message.operationState=6;break;case"CANCELLED":case 7:message.operationState=7;break}if(object.progressDocuments!=null){if(typeof object.progressDocuments!=="object")throw TypeError(".google.firestore.admin.v1.ImportDocumentsMetadata.progressDocuments: object expected");message.progressDocuments=$root.google.firestore.admin.v1.Progress.fromObject(object.progressDocuments,long+1)}if(object.progressBytes!=null){if(typeof object.progressBytes!=="object")throw TypeError(".google.firestore.admin.v1.ImportDocumentsMetadata.progressBytes: object expected");message.progressBytes=$root.google.firestore.admin.v1.Progress.fromObject(object.progressBytes,long+1)}if(object.collectionIds){if(!Array.isArray(object.collectionIds))throw TypeError(".google.firestore.admin.v1.ImportDocumentsMetadata.collectionIds: array expected");message.collectionIds=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.BulkDeleteDocumentsMetadata;while(reader.pos>>3){case 1:{message.startTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.endTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.operationState=reader.int32();break}case 4:{message.progressDocuments=$root.google.firestore.admin.v1.Progress.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.progressBytes=$root.google.firestore.admin.v1.Progress.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{if(!(message.collectionIds&&message.collectionIds.length))message.collectionIds=[];message.collectionIds.push(reader.string());break}case 7:{if(!(message.namespaceIds&&message.namespaceIds.length))message.namespaceIds=[];message.namespaceIds.push(reader.string());break}case 8:{message.snapshotTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};BulkDeleteDocumentsMetadata.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BulkDeleteDocumentsMetadata.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.startTime!=null&&message.hasOwnProperty("startTime")){var error=$root.google.protobuf.Timestamp.verify(message.startTime,long+1);if(error)return"startTime."+error}if(message.endTime!=null&&message.hasOwnProperty("endTime")){var error=$root.google.protobuf.Timestamp.verify(message.endTime,long+1);if(error)return"endTime."+error}if(message.operationState!=null&&message.hasOwnProperty("operationState"))switch(message.operationState){default:return"operationState: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:break}if(message.progressDocuments!=null&&message.hasOwnProperty("progressDocuments")){var error=$root.google.firestore.admin.v1.Progress.verify(message.progressDocuments,long+1);if(error)return"progressDocuments."+error}if(message.progressBytes!=null&&message.hasOwnProperty("progressBytes")){var error=$root.google.firestore.admin.v1.Progress.verify(message.progressBytes,long+1);if(error)return"progressBytes."+error}if(message.collectionIds!=null&&message.hasOwnProperty("collectionIds")){if(!Array.isArray(message.collectionIds))return"collectionIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.BulkDeleteDocumentsMetadata;if(object.startTime!=null){if(typeof object.startTime!=="object")throw TypeError(".google.firestore.admin.v1.BulkDeleteDocumentsMetadata.startTime: object expected");message.startTime=$root.google.protobuf.Timestamp.fromObject(object.startTime,long+1)}if(object.endTime!=null){if(typeof object.endTime!=="object")throw TypeError(".google.firestore.admin.v1.BulkDeleteDocumentsMetadata.endTime: object expected");message.endTime=$root.google.protobuf.Timestamp.fromObject(object.endTime,long+1)}switch(object.operationState){default:if(typeof object.operationState==="number"){message.operationState=object.operationState;break}break;case"OPERATION_STATE_UNSPECIFIED":case 0:message.operationState=0;break;case"INITIALIZING":case 1:message.operationState=1;break;case"PROCESSING":case 2:message.operationState=2;break;case"CANCELLING":case 3:message.operationState=3;break;case"FINALIZING":case 4:message.operationState=4;break;case"SUCCESSFUL":case 5:message.operationState=5;break;case"FAILED":case 6:message.operationState=6;break;case"CANCELLED":case 7:message.operationState=7;break}if(object.progressDocuments!=null){if(typeof object.progressDocuments!=="object")throw TypeError(".google.firestore.admin.v1.BulkDeleteDocumentsMetadata.progressDocuments: object expected");message.progressDocuments=$root.google.firestore.admin.v1.Progress.fromObject(object.progressDocuments,long+1)}if(object.progressBytes!=null){if(typeof object.progressBytes!=="object")throw TypeError(".google.firestore.admin.v1.BulkDeleteDocumentsMetadata.progressBytes: object expected");message.progressBytes=$root.google.firestore.admin.v1.Progress.fromObject(object.progressBytes,long+1)}if(object.collectionIds){if(!Array.isArray(object.collectionIds))throw TypeError(".google.firestore.admin.v1.BulkDeleteDocumentsMetadata.collectionIds: array expected");message.collectionIds=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ExportDocumentsResponse;while(reader.pos>>3){case 1:{message.outputUriPrefix=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ExportDocumentsResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExportDocumentsResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.outputUriPrefix!=null&&message.hasOwnProperty("outputUriPrefix"))if(!$util.isString(message.outputUriPrefix))return"outputUriPrefix: string expected";return null};ExportDocumentsResponse.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.ExportDocumentsResponse)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ExportDocumentsResponse;if(object.outputUriPrefix!=null)message.outputUriPrefix=String(object.outputUriPrefix);return message};ExportDocumentsResponse.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.outputUriPrefix="";if(message.outputUriPrefix!=null&&message.hasOwnProperty("outputUriPrefix"))object.outputUriPrefix=message.outputUriPrefix;return object};ExportDocumentsResponse.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ExportDocumentsResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.ExportDocumentsResponse"};return ExportDocumentsResponse}();v1.RestoreDatabaseMetadata=function(){function RestoreDatabaseMetadata(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.RestoreDatabaseMetadata;while(reader.pos>>3){case 1:{message.startTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.endTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.operationState=reader.int32();break}case 4:{message.database=reader.string();break}case 5:{message.backup=reader.string();break}case 8:{message.progressPercentage=$root.google.firestore.admin.v1.Progress.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RestoreDatabaseMetadata.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RestoreDatabaseMetadata.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.startTime!=null&&message.hasOwnProperty("startTime")){var error=$root.google.protobuf.Timestamp.verify(message.startTime,long+1);if(error)return"startTime."+error}if(message.endTime!=null&&message.hasOwnProperty("endTime")){var error=$root.google.protobuf.Timestamp.verify(message.endTime,long+1);if(error)return"endTime."+error}if(message.operationState!=null&&message.hasOwnProperty("operationState"))switch(message.operationState){default:return"operationState: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:break}if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.backup!=null&&message.hasOwnProperty("backup"))if(!$util.isString(message.backup))return"backup: string expected";if(message.progressPercentage!=null&&message.hasOwnProperty("progressPercentage")){var error=$root.google.firestore.admin.v1.Progress.verify(message.progressPercentage,long+1);if(error)return"progressPercentage."+error}return null};RestoreDatabaseMetadata.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.RestoreDatabaseMetadata)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.RestoreDatabaseMetadata;if(object.startTime!=null){if(typeof object.startTime!=="object")throw TypeError(".google.firestore.admin.v1.RestoreDatabaseMetadata.startTime: object expected");message.startTime=$root.google.protobuf.Timestamp.fromObject(object.startTime,long+1)}if(object.endTime!=null){if(typeof object.endTime!=="object")throw TypeError(".google.firestore.admin.v1.RestoreDatabaseMetadata.endTime: object expected");message.endTime=$root.google.protobuf.Timestamp.fromObject(object.endTime,long+1)}switch(object.operationState){default:if(typeof object.operationState==="number"){message.operationState=object.operationState;break}break;case"OPERATION_STATE_UNSPECIFIED":case 0:message.operationState=0;break;case"INITIALIZING":case 1:message.operationState=1;break;case"PROCESSING":case 2:message.operationState=2;break;case"CANCELLING":case 3:message.operationState=3;break;case"FINALIZING":case 4:message.operationState=4;break;case"SUCCESSFUL":case 5:message.operationState=5;break;case"FAILED":case 6:message.operationState=6;break;case"CANCELLED":case 7:message.operationState=7;break}if(object.database!=null)message.database=String(object.database);if(object.backup!=null)message.backup=String(object.backup);if(object.progressPercentage!=null){if(typeof object.progressPercentage!=="object")throw TypeError(".google.firestore.admin.v1.RestoreDatabaseMetadata.progressPercentage: object expected");message.progressPercentage=$root.google.firestore.admin.v1.Progress.fromObject(object.progressPercentage,long+1)}return message};RestoreDatabaseMetadata.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.startTime=null;object.endTime=null;object.operationState=options.enums===String?"OPERATION_STATE_UNSPECIFIED":0;object.database="";object.backup="";object.progressPercentage=null}if(message.startTime!=null&&message.hasOwnProperty("startTime"))object.startTime=$root.google.protobuf.Timestamp.toObject(message.startTime,options);if(message.endTime!=null&&message.hasOwnProperty("endTime"))object.endTime=$root.google.protobuf.Timestamp.toObject(message.endTime,options);if(message.operationState!=null&&message.hasOwnProperty("operationState"))object.operationState=options.enums===String?$root.google.firestore.admin.v1.OperationState[message.operationState]===undefined?message.operationState:$root.google.firestore.admin.v1.OperationState[message.operationState]:message.operationState;if(message.database!=null&&message.hasOwnProperty("database"))object.database=message.database;if(message.backup!=null&&message.hasOwnProperty("backup"))object.backup=message.backup;if(message.progressPercentage!=null&&message.hasOwnProperty("progressPercentage"))object.progressPercentage=$root.google.firestore.admin.v1.Progress.toObject(message.progressPercentage,options);return object};RestoreDatabaseMetadata.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RestoreDatabaseMetadata.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.RestoreDatabaseMetadata"};return RestoreDatabaseMetadata}();v1.CloneDatabaseMetadata=function(){function CloneDatabaseMetadata(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.CloneDatabaseMetadata;while(reader.pos>>3){case 1:{message.startTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.endTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.operationState=reader.int32();break}case 4:{message.database=reader.string();break}case 7:{message.pitrSnapshot=$root.google.firestore.admin.v1.PitrSnapshot.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.progressPercentage=$root.google.firestore.admin.v1.Progress.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};CloneDatabaseMetadata.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CloneDatabaseMetadata.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.startTime!=null&&message.hasOwnProperty("startTime")){var error=$root.google.protobuf.Timestamp.verify(message.startTime,long+1);if(error)return"startTime."+error}if(message.endTime!=null&&message.hasOwnProperty("endTime")){var error=$root.google.protobuf.Timestamp.verify(message.endTime,long+1);if(error)return"endTime."+error}if(message.operationState!=null&&message.hasOwnProperty("operationState"))switch(message.operationState){default:return"operationState: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:break}if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.pitrSnapshot!=null&&message.hasOwnProperty("pitrSnapshot")){var error=$root.google.firestore.admin.v1.PitrSnapshot.verify(message.pitrSnapshot,long+1);if(error)return"pitrSnapshot."+error}if(message.progressPercentage!=null&&message.hasOwnProperty("progressPercentage")){var error=$root.google.firestore.admin.v1.Progress.verify(message.progressPercentage,long+1);if(error)return"progressPercentage."+error}return null};CloneDatabaseMetadata.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.CloneDatabaseMetadata)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.CloneDatabaseMetadata;if(object.startTime!=null){if(typeof object.startTime!=="object")throw TypeError(".google.firestore.admin.v1.CloneDatabaseMetadata.startTime: object expected");message.startTime=$root.google.protobuf.Timestamp.fromObject(object.startTime,long+1)}if(object.endTime!=null){if(typeof object.endTime!=="object")throw TypeError(".google.firestore.admin.v1.CloneDatabaseMetadata.endTime: object expected");message.endTime=$root.google.protobuf.Timestamp.fromObject(object.endTime,long+1)}switch(object.operationState){default:if(typeof object.operationState==="number"){message.operationState=object.operationState;break}break;case"OPERATION_STATE_UNSPECIFIED":case 0:message.operationState=0;break;case"INITIALIZING":case 1:message.operationState=1;break;case"PROCESSING":case 2:message.operationState=2;break;case"CANCELLING":case 3:message.operationState=3;break;case"FINALIZING":case 4:message.operationState=4;break;case"SUCCESSFUL":case 5:message.operationState=5;break;case"FAILED":case 6:message.operationState=6;break;case"CANCELLED":case 7:message.operationState=7;break}if(object.database!=null)message.database=String(object.database);if(object.pitrSnapshot!=null){if(typeof object.pitrSnapshot!=="object")throw TypeError(".google.firestore.admin.v1.CloneDatabaseMetadata.pitrSnapshot: object expected");message.pitrSnapshot=$root.google.firestore.admin.v1.PitrSnapshot.fromObject(object.pitrSnapshot,long+1)}if(object.progressPercentage!=null){if(typeof object.progressPercentage!=="object")throw TypeError(".google.firestore.admin.v1.CloneDatabaseMetadata.progressPercentage: object expected");message.progressPercentage=$root.google.firestore.admin.v1.Progress.fromObject(object.progressPercentage,long+1)}return message};CloneDatabaseMetadata.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.startTime=null;object.endTime=null;object.operationState=options.enums===String?"OPERATION_STATE_UNSPECIFIED":0;object.database="";object.progressPercentage=null;object.pitrSnapshot=null}if(message.startTime!=null&&message.hasOwnProperty("startTime"))object.startTime=$root.google.protobuf.Timestamp.toObject(message.startTime,options);if(message.endTime!=null&&message.hasOwnProperty("endTime"))object.endTime=$root.google.protobuf.Timestamp.toObject(message.endTime,options);if(message.operationState!=null&&message.hasOwnProperty("operationState"))object.operationState=options.enums===String?$root.google.firestore.admin.v1.OperationState[message.operationState]===undefined?message.operationState:$root.google.firestore.admin.v1.OperationState[message.operationState]:message.operationState;if(message.database!=null&&message.hasOwnProperty("database"))object.database=message.database;if(message.progressPercentage!=null&&message.hasOwnProperty("progressPercentage"))object.progressPercentage=$root.google.firestore.admin.v1.Progress.toObject(message.progressPercentage,options);if(message.pitrSnapshot!=null&&message.hasOwnProperty("pitrSnapshot"))object.pitrSnapshot=$root.google.firestore.admin.v1.PitrSnapshot.toObject(message.pitrSnapshot,options);return object};CloneDatabaseMetadata.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CloneDatabaseMetadata.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.CloneDatabaseMetadata"};return CloneDatabaseMetadata}();v1.Progress=function(){function Progress(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Progress;while(reader.pos>>3){case 1:{message.estimatedWork=reader.int64();break}case 2:{message.completedWork=reader.int64();break}default:reader.skipType(tag&7,long);break}}return message};Progress.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Progress.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.estimatedWork!=null&&message.hasOwnProperty("estimatedWork"))if(!$util.isInteger(message.estimatedWork)&&!(message.estimatedWork&&$util.isInteger(message.estimatedWork.low)&&$util.isInteger(message.estimatedWork.high)))return"estimatedWork: integer|Long expected";if(message.completedWork!=null&&message.hasOwnProperty("completedWork"))if(!$util.isInteger(message.completedWork)&&!(message.completedWork&&$util.isInteger(message.completedWork.low)&&$util.isInteger(message.completedWork.high)))return"completedWork: integer|Long expected";return null};Progress.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Progress)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Progress;if(object.estimatedWork!=null)if($util.Long)(message.estimatedWork=$util.Long.fromValue(object.estimatedWork)).unsigned=false;else if(typeof object.estimatedWork==="string")message.estimatedWork=parseInt(object.estimatedWork,10);else if(typeof object.estimatedWork==="number")message.estimatedWork=object.estimatedWork;else if(typeof object.estimatedWork==="object")message.estimatedWork=new $util.LongBits(object.estimatedWork.low>>>0,object.estimatedWork.high>>>0).toNumber();if(object.completedWork!=null)if($util.Long)(message.completedWork=$util.Long.fromValue(object.completedWork)).unsigned=false;else if(typeof object.completedWork==="string")message.completedWork=parseInt(object.completedWork,10);else if(typeof object.completedWork==="number")message.completedWork=object.completedWork;else if(typeof object.completedWork==="object")message.completedWork=new $util.LongBits(object.completedWork.low>>>0,object.completedWork.high>>>0).toNumber();return message};Progress.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){if($util.Long){var long=new $util.Long(0,0,false);object.estimatedWork=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.estimatedWork=options.longs===String?"0":0;if($util.Long){var long=new $util.Long(0,0,false);object.completedWork=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.completedWork=options.longs===String?"0":0}if(message.estimatedWork!=null&&message.hasOwnProperty("estimatedWork"))if(typeof message.estimatedWork==="number")object.estimatedWork=options.longs===String?String(message.estimatedWork):message.estimatedWork;else object.estimatedWork=options.longs===String?$util.Long.prototype.toString.call(message.estimatedWork):options.longs===Number?new $util.LongBits(message.estimatedWork.low>>>0,message.estimatedWork.high>>>0).toNumber():message.estimatedWork;if(message.completedWork!=null&&message.hasOwnProperty("completedWork"))if(typeof message.completedWork==="number")object.completedWork=options.longs===String?String(message.completedWork):message.completedWork;else object.completedWork=options.longs===String?$util.Long.prototype.toString.call(message.completedWork):options.longs===Number?new $util.LongBits(message.completedWork.low>>>0,message.completedWork.high>>>0).toNumber():message.completedWork;return object};Progress.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Progress.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Progress"};return Progress}();v1.OperationState=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="OPERATION_STATE_UNSPECIFIED"]=0;values[valuesById[1]="INITIALIZING"]=1;values[valuesById[2]="PROCESSING"]=2;values[valuesById[3]="CANCELLING"]=3;values[valuesById[4]="FINALIZING"]=4;values[valuesById[5]="SUCCESSFUL"]=5;values[valuesById[6]="FAILED"]=6;values[valuesById[7]="CANCELLED"]=7;return values}();v1.PitrSnapshot=function(){function PitrSnapshot(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.PitrSnapshot;while(reader.pos>>3){case 1:{message.database=reader.string();break}case 2:{message.databaseUid=reader.bytes();break}case 3:{message.snapshotTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};PitrSnapshot.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};PitrSnapshot.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.databaseUid!=null&&message.hasOwnProperty("databaseUid"))if(!(message.databaseUid&&typeof message.databaseUid.length==="number"||$util.isString(message.databaseUid)))return"databaseUid: buffer expected";if(message.snapshotTime!=null&&message.hasOwnProperty("snapshotTime")){var error=$root.google.protobuf.Timestamp.verify(message.snapshotTime,long+1);if(error)return"snapshotTime."+error}return null};PitrSnapshot.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.PitrSnapshot)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.PitrSnapshot;if(object.database!=null)message.database=String(object.database);if(object.databaseUid!=null)if(typeof object.databaseUid==="string")$util.base64.decode(object.databaseUid,message.databaseUid=$util.newBuffer($util.base64.length(object.databaseUid)),0);else if(object.databaseUid.length>=0)message.databaseUid=object.databaseUid;if(object.snapshotTime!=null){if(typeof object.snapshotTime!=="object")throw TypeError(".google.firestore.admin.v1.PitrSnapshot.snapshotTime: object expected");message.snapshotTime=$root.google.protobuf.Timestamp.fromObject(object.snapshotTime,long+1)}return message};PitrSnapshot.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.database="";if(options.bytes===String)object.databaseUid="";else{object.databaseUid=[];if(options.bytes!==Array)object.databaseUid=$util.newBuffer(object.databaseUid)}object.snapshotTime=null}if(message.database!=null&&message.hasOwnProperty("database"))object.database=message.database;if(message.databaseUid!=null&&message.hasOwnProperty("databaseUid"))object.databaseUid=options.bytes===String?$util.base64.encode(message.databaseUid,0,message.databaseUid.length):options.bytes===Array?Array.prototype.slice.call(message.databaseUid):message.databaseUid;if(message.snapshotTime!=null&&message.hasOwnProperty("snapshotTime"))object.snapshotTime=$root.google.protobuf.Timestamp.toObject(message.snapshotTime,options);return object};PitrSnapshot.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};PitrSnapshot.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.PitrSnapshot"};return PitrSnapshot}();v1.BackupSchedule=function(){function BackupSchedule(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.BackupSchedule;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 3:{message.createTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 10:{message.updateTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.retention=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.dailyRecurrence=$root.google.firestore.admin.v1.DailyRecurrence.decode(reader,reader.uint32(),undefined,long+1);break}case 8:{message.weeklyRecurrence=$root.google.firestore.admin.v1.WeeklyRecurrence.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};BackupSchedule.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BackupSchedule.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.createTime!=null&&message.hasOwnProperty("createTime")){var error=$root.google.protobuf.Timestamp.verify(message.createTime,long+1);if(error)return"createTime."+error}if(message.updateTime!=null&&message.hasOwnProperty("updateTime")){var error=$root.google.protobuf.Timestamp.verify(message.updateTime,long+1);if(error)return"updateTime."+error}if(message.retention!=null&&message.hasOwnProperty("retention")){var error=$root.google.protobuf.Duration.verify(message.retention,long+1);if(error)return"retention."+error}if(message.dailyRecurrence!=null&&message.hasOwnProperty("dailyRecurrence")){properties.recurrence=1;{var error=$root.google.firestore.admin.v1.DailyRecurrence.verify(message.dailyRecurrence,long+1);if(error)return"dailyRecurrence."+error}}if(message.weeklyRecurrence!=null&&message.hasOwnProperty("weeklyRecurrence")){if(properties.recurrence===1)return"recurrence: multiple values";properties.recurrence=1;{var error=$root.google.firestore.admin.v1.WeeklyRecurrence.verify(message.weeklyRecurrence,long+1);if(error)return"weeklyRecurrence."+error}}return null};BackupSchedule.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.BackupSchedule)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.BackupSchedule;if(object.name!=null)message.name=String(object.name);if(object.createTime!=null){if(typeof object.createTime!=="object")throw TypeError(".google.firestore.admin.v1.BackupSchedule.createTime: object expected");message.createTime=$root.google.protobuf.Timestamp.fromObject(object.createTime,long+1)}if(object.updateTime!=null){if(typeof object.updateTime!=="object")throw TypeError(".google.firestore.admin.v1.BackupSchedule.updateTime: object expected");message.updateTime=$root.google.protobuf.Timestamp.fromObject(object.updateTime,long+1)}if(object.retention!=null){if(typeof object.retention!=="object")throw TypeError(".google.firestore.admin.v1.BackupSchedule.retention: object expected");message.retention=$root.google.protobuf.Duration.fromObject(object.retention,long+1)}if(object.dailyRecurrence!=null){if(typeof object.dailyRecurrence!=="object")throw TypeError(".google.firestore.admin.v1.BackupSchedule.dailyRecurrence: object expected");message.dailyRecurrence=$root.google.firestore.admin.v1.DailyRecurrence.fromObject(object.dailyRecurrence,long+1)}if(object.weeklyRecurrence!=null){if(typeof object.weeklyRecurrence!=="object")throw TypeError(".google.firestore.admin.v1.BackupSchedule.weeklyRecurrence: object expected");message.weeklyRecurrence=$root.google.firestore.admin.v1.WeeklyRecurrence.fromObject(object.weeklyRecurrence,long+1)}return message};BackupSchedule.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.createTime=null;object.retention=null;object.updateTime=null}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.createTime!=null&&message.hasOwnProperty("createTime"))object.createTime=$root.google.protobuf.Timestamp.toObject(message.createTime,options);if(message.retention!=null&&message.hasOwnProperty("retention"))object.retention=$root.google.protobuf.Duration.toObject(message.retention,options);if(message.dailyRecurrence!=null&&message.hasOwnProperty("dailyRecurrence")){object.dailyRecurrence=$root.google.firestore.admin.v1.DailyRecurrence.toObject(message.dailyRecurrence,options);if(options.oneofs)object.recurrence="dailyRecurrence"}if(message.weeklyRecurrence!=null&&message.hasOwnProperty("weeklyRecurrence")){object.weeklyRecurrence=$root.google.firestore.admin.v1.WeeklyRecurrence.toObject(message.weeklyRecurrence,options);if(options.oneofs)object.recurrence="weeklyRecurrence"}if(message.updateTime!=null&&message.hasOwnProperty("updateTime"))object.updateTime=$root.google.protobuf.Timestamp.toObject(message.updateTime,options);return object};BackupSchedule.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BackupSchedule.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.BackupSchedule"};return BackupSchedule}();v1.DailyRecurrence=function(){function DailyRecurrence(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.DailyRecurrence;while(reader.pos>>3){default:reader.skipType(tag&7,long);break}}return message};DailyRecurrence.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DailyRecurrence.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};DailyRecurrence.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.DailyRecurrence)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.firestore.admin.v1.DailyRecurrence};DailyRecurrence.toObject=function toObject(){return{}};DailyRecurrence.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DailyRecurrence.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.DailyRecurrence"};return DailyRecurrence}();v1.WeeklyRecurrence=function(){function WeeklyRecurrence(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.WeeklyRecurrence;while(reader.pos>>3){case 2:{message.day=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};WeeklyRecurrence.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};WeeklyRecurrence.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.day!=null&&message.hasOwnProperty("day"))switch(message.day){default:return"day: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:break}return null};WeeklyRecurrence.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.WeeklyRecurrence)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.WeeklyRecurrence;switch(object.day){default:if(typeof object.day==="number"){message.day=object.day;break}break;case"DAY_OF_WEEK_UNSPECIFIED":case 0:message.day=0;break;case"MONDAY":case 1:message.day=1;break;case"TUESDAY":case 2:message.day=2;break;case"WEDNESDAY":case 3:message.day=3;break;case"THURSDAY":case 4:message.day=4;break;case"FRIDAY":case 5:message.day=5;break;case"SATURDAY":case 6:message.day=6;break;case"SUNDAY":case 7:message.day=7;break}return message};WeeklyRecurrence.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.day=options.enums===String?"DAY_OF_WEEK_UNSPECIFIED":0;if(message.day!=null&&message.hasOwnProperty("day"))object.day=options.enums===String?$root.google.type.DayOfWeek[message.day]===undefined?message.day:$root.google.type.DayOfWeek[message.day]:message.day;return object};WeeklyRecurrence.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};WeeklyRecurrence.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.WeeklyRecurrence"};return WeeklyRecurrence}();v1.UserCreds=function(){function UserCreds(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.UserCreds;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{message.createTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.updateTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.state=reader.int32();break}case 5:{message.securePassword=reader.string();break}case 6:{message.resourceIdentity=$root.google.firestore.admin.v1.UserCreds.ResourceIdentity.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};UserCreds.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UserCreds.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.createTime!=null&&message.hasOwnProperty("createTime")){var error=$root.google.protobuf.Timestamp.verify(message.createTime,long+1);if(error)return"createTime."+error}if(message.updateTime!=null&&message.hasOwnProperty("updateTime")){var error=$root.google.protobuf.Timestamp.verify(message.updateTime,long+1);if(error)return"updateTime."+error}if(message.state!=null&&message.hasOwnProperty("state"))switch(message.state){default:return"state: enum value expected";case 0:case 1:case 2:break}if(message.securePassword!=null&&message.hasOwnProperty("securePassword"))if(!$util.isString(message.securePassword))return"securePassword: string expected";if(message.resourceIdentity!=null&&message.hasOwnProperty("resourceIdentity")){properties.UserCredsIdentity=1;{var error=$root.google.firestore.admin.v1.UserCreds.ResourceIdentity.verify(message.resourceIdentity,long+1);if(error)return"resourceIdentity."+error}}return null};UserCreds.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.UserCreds)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.UserCreds;if(object.name!=null)message.name=String(object.name);if(object.createTime!=null){if(typeof object.createTime!=="object")throw TypeError(".google.firestore.admin.v1.UserCreds.createTime: object expected");message.createTime=$root.google.protobuf.Timestamp.fromObject(object.createTime,long+1)}if(object.updateTime!=null){if(typeof object.updateTime!=="object")throw TypeError(".google.firestore.admin.v1.UserCreds.updateTime: object expected");message.updateTime=$root.google.protobuf.Timestamp.fromObject(object.updateTime,long+1)}switch(object.state){default:if(typeof object.state==="number"){message.state=object.state;break}break;case"STATE_UNSPECIFIED":case 0:message.state=0;break;case"ENABLED":case 1:message.state=1;break;case"DISABLED":case 2:message.state=2;break}if(object.securePassword!=null)message.securePassword=String(object.securePassword);if(object.resourceIdentity!=null){if(typeof object.resourceIdentity!=="object")throw TypeError(".google.firestore.admin.v1.UserCreds.resourceIdentity: object expected");message.resourceIdentity=$root.google.firestore.admin.v1.UserCreds.ResourceIdentity.fromObject(object.resourceIdentity,long+1)}return message};UserCreds.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.createTime=null;object.updateTime=null;object.state=options.enums===String?"STATE_UNSPECIFIED":0;object.securePassword=""}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.createTime!=null&&message.hasOwnProperty("createTime"))object.createTime=$root.google.protobuf.Timestamp.toObject(message.createTime,options);if(message.updateTime!=null&&message.hasOwnProperty("updateTime"))object.updateTime=$root.google.protobuf.Timestamp.toObject(message.updateTime,options);if(message.state!=null&&message.hasOwnProperty("state"))object.state=options.enums===String?$root.google.firestore.admin.v1.UserCreds.State[message.state]===undefined?message.state:$root.google.firestore.admin.v1.UserCreds.State[message.state]:message.state;if(message.securePassword!=null&&message.hasOwnProperty("securePassword"))object.securePassword=message.securePassword;if(message.resourceIdentity!=null&&message.hasOwnProperty("resourceIdentity")){object.resourceIdentity=$root.google.firestore.admin.v1.UserCreds.ResourceIdentity.toObject(message.resourceIdentity,options);if(options.oneofs)object.UserCredsIdentity="resourceIdentity"}return object};UserCreds.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UserCreds.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.UserCreds"};UserCreds.State=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="STATE_UNSPECIFIED"]=0;values[valuesById[1]="ENABLED"]=1;values[valuesById[2]="DISABLED"]=2;return values}();UserCreds.ResourceIdentity=function(){function ResourceIdentity(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.UserCreds.ResourceIdentity;while(reader.pos>>3){case 1:{message.principal=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ResourceIdentity.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ResourceIdentity.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.principal!=null&&message.hasOwnProperty("principal"))if(!$util.isString(message.principal))return"principal: string expected";return null};ResourceIdentity.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.UserCreds.ResourceIdentity)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.UserCreds.ResourceIdentity;if(object.principal!=null)message.principal=String(object.principal);return message};ResourceIdentity.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.principal="";if(message.principal!=null&&message.hasOwnProperty("principal"))object.principal=message.principal;return object};ResourceIdentity.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ResourceIdentity.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.UserCreds.ResourceIdentity"};return ResourceIdentity}();return UserCreds}();v1.LocationMetadata=function(){function LocationMetadata(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.LocationMetadata;while(reader.pos>>3){default:reader.skipType(tag&7,long);break}}return message};LocationMetadata.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};LocationMetadata.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};LocationMetadata.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.LocationMetadata)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.firestore.admin.v1.LocationMetadata};LocationMetadata.toObject=function toObject(){return{}};LocationMetadata.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};LocationMetadata.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.LocationMetadata"};return LocationMetadata}();return v1}();return admin}();firestore.v1=function(){var v1={};v1.AggregationResult=function(){function AggregationResult(properties){this.aggregateFields={};if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.AggregationResult,key,value;while(reader.pos>>3){case 2:{if(message.aggregateFields===$util.emptyObject)message.aggregateFields={};var end2=reader.uint32()+reader.pos;key="";value=null;while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=$root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1);break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.aggregateFields,key);message.aggregateFields[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};AggregationResult.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};AggregationResult.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.aggregateFields!=null&&message.hasOwnProperty("aggregateFields")){if(!$util.isObject(message.aggregateFields))return"aggregateFields: object expected";var key=Object.keys(message.aggregateFields);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.AggregationResult;if(object.aggregateFields){if(typeof object.aggregateFields!=="object")throw TypeError(".google.firestore.v1.AggregationResult.aggregateFields: object expected");message.aggregateFields={};for(var keys=Object.keys(object.aggregateFields),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.Document,key,value;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{if(message.fields===$util.emptyObject)message.fields={};var end2=reader.uint32()+reader.pos;key="";value=null;while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=$root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1);break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.fields,key);message.fields[key]=value;break}case 3:{message.createTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.updateTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Document.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Document.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.fields!=null&&message.hasOwnProperty("fields")){if(!$util.isObject(message.fields))return"fields: object expected";var key=Object.keys(message.fields);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.Document;if(object.name!=null)message.name=String(object.name);if(object.fields){if(typeof object.fields!=="object")throw TypeError(".google.firestore.v1.Document.fields: object expected");message.fields={};for(var keys=Object.keys(object.fields),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.Value;while(reader.pos>>3){case 11:{message.nullValue=reader.int32();break}case 1:{message.booleanValue=reader.bool();break}case 2:{message.integerValue=reader.int64();break}case 3:{message.doubleValue=reader.double();break}case 10:{message.timestampValue=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 17:{message.stringValue=reader.string();break}case 18:{message.bytesValue=reader.bytes();break}case 5:{message.referenceValue=reader.string();break}case 8:{message.geoPointValue=$root.google.type.LatLng.decode(reader,reader.uint32(),undefined,long+1);break}case 9:{message.arrayValue=$root.google.firestore.v1.ArrayValue.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.mapValue=$root.google.firestore.v1.MapValue.decode(reader,reader.uint32(),undefined,long+1);break}case 19:{message.fieldReferenceValue=reader.string();break}case 22:{message.variableReferenceValue=reader.string();break}case 20:{message.functionValue=$root.google.firestore.v1.Function.decode(reader,reader.uint32(),undefined,long+1);break}case 21:{message.pipelineValue=$root.google.firestore.v1.Pipeline.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Value.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Value.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.nullValue!=null&&message.hasOwnProperty("nullValue")){properties.valueType=1;switch(message.nullValue){default:return"nullValue: enum value expected";case 0:break}}if(message.booleanValue!=null&&message.hasOwnProperty("booleanValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;if(typeof message.booleanValue!=="boolean")return"booleanValue: boolean expected"}if(message.integerValue!=null&&message.hasOwnProperty("integerValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;if(!$util.isInteger(message.integerValue)&&!(message.integerValue&&$util.isInteger(message.integerValue.low)&&$util.isInteger(message.integerValue.high)))return"integerValue: integer|Long expected"}if(message.doubleValue!=null&&message.hasOwnProperty("doubleValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;if(typeof message.doubleValue!=="number")return"doubleValue: number expected"}if(message.timestampValue!=null&&message.hasOwnProperty("timestampValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;{var error=$root.google.protobuf.Timestamp.verify(message.timestampValue,long+1);if(error)return"timestampValue."+error}}if(message.stringValue!=null&&message.hasOwnProperty("stringValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;if(!$util.isString(message.stringValue))return"stringValue: string expected"}if(message.bytesValue!=null&&message.hasOwnProperty("bytesValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;if(!(message.bytesValue&&typeof message.bytesValue.length==="number"||$util.isString(message.bytesValue)))return"bytesValue: buffer expected"}if(message.referenceValue!=null&&message.hasOwnProperty("referenceValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;if(!$util.isString(message.referenceValue))return"referenceValue: string expected"}if(message.geoPointValue!=null&&message.hasOwnProperty("geoPointValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;{var error=$root.google.type.LatLng.verify(message.geoPointValue,long+1);if(error)return"geoPointValue."+error}}if(message.arrayValue!=null&&message.hasOwnProperty("arrayValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;{var error=$root.google.firestore.v1.ArrayValue.verify(message.arrayValue,long+1);if(error)return"arrayValue."+error}}if(message.mapValue!=null&&message.hasOwnProperty("mapValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;{var error=$root.google.firestore.v1.MapValue.verify(message.mapValue,long+1);if(error)return"mapValue."+error}}if(message.fieldReferenceValue!=null&&message.hasOwnProperty("fieldReferenceValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;if(!$util.isString(message.fieldReferenceValue))return"fieldReferenceValue: string expected"}if(message.variableReferenceValue!=null&&message.hasOwnProperty("variableReferenceValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;if(!$util.isString(message.variableReferenceValue))return"variableReferenceValue: string expected"}if(message.functionValue!=null&&message.hasOwnProperty("functionValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;{var error=$root.google.firestore.v1.Function.verify(message.functionValue,long+1);if(error)return"functionValue."+error}}if(message.pipelineValue!=null&&message.hasOwnProperty("pipelineValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;{var error=$root.google.firestore.v1.Pipeline.verify(message.pipelineValue,long+1);if(error)return"pipelineValue."+error}}return null};Value.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.Value)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.Value;switch(object.nullValue){default:if(typeof object.nullValue==="number"){message.nullValue=object.nullValue;break}break;case"NULL_VALUE":case 0:message.nullValue=0;break}if(object.booleanValue!=null)message.booleanValue=Boolean(object.booleanValue);if(object.integerValue!=null)if($util.Long)(message.integerValue=$util.Long.fromValue(object.integerValue)).unsigned=false;else if(typeof object.integerValue==="string")message.integerValue=parseInt(object.integerValue,10);else if(typeof object.integerValue==="number")message.integerValue=object.integerValue;else if(typeof object.integerValue==="object")message.integerValue=new $util.LongBits(object.integerValue.low>>>0,object.integerValue.high>>>0).toNumber();if(object.doubleValue!=null)message.doubleValue=Number(object.doubleValue);if(object.timestampValue!=null){if(typeof object.timestampValue!=="object")throw TypeError(".google.firestore.v1.Value.timestampValue: object expected");message.timestampValue=$root.google.protobuf.Timestamp.fromObject(object.timestampValue,long+1)}if(object.stringValue!=null)message.stringValue=String(object.stringValue);if(object.bytesValue!=null)if(typeof object.bytesValue==="string")$util.base64.decode(object.bytesValue,message.bytesValue=$util.newBuffer($util.base64.length(object.bytesValue)),0);else if(object.bytesValue.length>=0)message.bytesValue=object.bytesValue;if(object.referenceValue!=null)message.referenceValue=String(object.referenceValue);if(object.geoPointValue!=null){if(typeof object.geoPointValue!=="object")throw TypeError(".google.firestore.v1.Value.geoPointValue: object expected");message.geoPointValue=$root.google.type.LatLng.fromObject(object.geoPointValue,long+1)}if(object.arrayValue!=null){if(typeof object.arrayValue!=="object")throw TypeError(".google.firestore.v1.Value.arrayValue: object expected");message.arrayValue=$root.google.firestore.v1.ArrayValue.fromObject(object.arrayValue,long+1)}if(object.mapValue!=null){if(typeof object.mapValue!=="object")throw TypeError(".google.firestore.v1.Value.mapValue: object expected");message.mapValue=$root.google.firestore.v1.MapValue.fromObject(object.mapValue,long+1)}if(object.fieldReferenceValue!=null)message.fieldReferenceValue=String(object.fieldReferenceValue);if(object.variableReferenceValue!=null)message.variableReferenceValue=String(object.variableReferenceValue);if(object.functionValue!=null){if(typeof object.functionValue!=="object")throw TypeError(".google.firestore.v1.Value.functionValue: object expected");message.functionValue=$root.google.firestore.v1.Function.fromObject(object.functionValue,long+1)}if(object.pipelineValue!=null){if(typeof object.pipelineValue!=="object")throw TypeError(".google.firestore.v1.Value.pipelineValue: object expected");message.pipelineValue=$root.google.firestore.v1.Pipeline.fromObject(object.pipelineValue,long+1)}return message};Value.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.booleanValue!=null&&message.hasOwnProperty("booleanValue")){object.booleanValue=message.booleanValue;if(options.oneofs)object.valueType="booleanValue"}if(message.integerValue!=null&&message.hasOwnProperty("integerValue")){if(typeof message.integerValue==="number")object.integerValue=options.longs===String?String(message.integerValue):message.integerValue;else object.integerValue=options.longs===String?$util.Long.prototype.toString.call(message.integerValue):options.longs===Number?new $util.LongBits(message.integerValue.low>>>0,message.integerValue.high>>>0).toNumber():message.integerValue;if(options.oneofs)object.valueType="integerValue"}if(message.doubleValue!=null&&message.hasOwnProperty("doubleValue")){object.doubleValue=options.json&&!isFinite(message.doubleValue)?String(message.doubleValue):message.doubleValue;if(options.oneofs)object.valueType="doubleValue"}if(message.referenceValue!=null&&message.hasOwnProperty("referenceValue")){object.referenceValue=message.referenceValue;if(options.oneofs)object.valueType="referenceValue"}if(message.mapValue!=null&&message.hasOwnProperty("mapValue")){object.mapValue=$root.google.firestore.v1.MapValue.toObject(message.mapValue,options);if(options.oneofs)object.valueType="mapValue"}if(message.geoPointValue!=null&&message.hasOwnProperty("geoPointValue")){object.geoPointValue=$root.google.type.LatLng.toObject(message.geoPointValue,options);if(options.oneofs)object.valueType="geoPointValue"}if(message.arrayValue!=null&&message.hasOwnProperty("arrayValue")){object.arrayValue=$root.google.firestore.v1.ArrayValue.toObject(message.arrayValue,options);if(options.oneofs)object.valueType="arrayValue"}if(message.timestampValue!=null&&message.hasOwnProperty("timestampValue")){object.timestampValue=$root.google.protobuf.Timestamp.toObject(message.timestampValue,options);if(options.oneofs)object.valueType="timestampValue"}if(message.nullValue!=null&&message.hasOwnProperty("nullValue")){object.nullValue=options.enums===String?$root.google.protobuf.NullValue[message.nullValue]===undefined?message.nullValue:$root.google.protobuf.NullValue[message.nullValue]:message.nullValue;if(options.oneofs)object.valueType="nullValue"}if(message.stringValue!=null&&message.hasOwnProperty("stringValue")){object.stringValue=message.stringValue;if(options.oneofs)object.valueType="stringValue"}if(message.bytesValue!=null&&message.hasOwnProperty("bytesValue")){object.bytesValue=options.bytes===String?$util.base64.encode(message.bytesValue,0,message.bytesValue.length):options.bytes===Array?Array.prototype.slice.call(message.bytesValue):message.bytesValue;if(options.oneofs)object.valueType="bytesValue"}if(message.fieldReferenceValue!=null&&message.hasOwnProperty("fieldReferenceValue")){object.fieldReferenceValue=message.fieldReferenceValue;if(options.oneofs)object.valueType="fieldReferenceValue"}if(message.functionValue!=null&&message.hasOwnProperty("functionValue")){object.functionValue=$root.google.firestore.v1.Function.toObject(message.functionValue,options);if(options.oneofs)object.valueType="functionValue"}if(message.pipelineValue!=null&&message.hasOwnProperty("pipelineValue")){object.pipelineValue=$root.google.firestore.v1.Pipeline.toObject(message.pipelineValue,options);if(options.oneofs)object.valueType="pipelineValue"}if(message.variableReferenceValue!=null&&message.hasOwnProperty("variableReferenceValue")){object.variableReferenceValue=message.variableReferenceValue;if(options.oneofs)object.valueType="variableReferenceValue"}return object};Value.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.Value"};return Value}();v1.ArrayValue=function(){function ArrayValue(properties){this.values=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ArrayValue;while(reader.pos>>3){case 1:{if(!(message.values&&message.values.length))message.values=[];message.values.push($root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};ArrayValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ArrayValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.values!=null&&message.hasOwnProperty("values")){if(!Array.isArray(message.values))return"values: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ArrayValue;if(object.values){if(!Array.isArray(object.values))throw TypeError(".google.firestore.v1.ArrayValue.values: array expected");message.values=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.MapValue,key,value;while(reader.pos>>3){case 1:{if(message.fields===$util.emptyObject)message.fields={};var end2=reader.uint32()+reader.pos;key="";value=null;while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=$root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1);break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.fields,key);message.fields[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};MapValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};MapValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.fields!=null&&message.hasOwnProperty("fields")){if(!$util.isObject(message.fields))return"fields: object expected";var key=Object.keys(message.fields);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.MapValue;if(object.fields){if(typeof object.fields!=="object")throw TypeError(".google.firestore.v1.MapValue.fields: object expected");message.fields={};for(var keys=Object.keys(object.fields),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.Function,key,value;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{if(!(message.args&&message.args.length))message.args=[];message.args.push($root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{if(message.options===$util.emptyObject)message.options={};var end2=reader.uint32()+reader.pos;key="";value=null;while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=$root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1);break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.options,key);message.options[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};Function.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Function.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.args!=null&&message.hasOwnProperty("args")){if(!Array.isArray(message.args))return"args: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.Function;if(object.name!=null)message.name=String(object.name);if(object.args){if(!Array.isArray(object.args))throw TypeError(".google.firestore.v1.Function.args: array expected");message.args=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.Pipeline;while(reader.pos>>3){case 1:{if(!(message.stages&&message.stages.length))message.stages=[];message.stages.push($root.google.firestore.v1.Pipeline.Stage.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};Pipeline.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Pipeline.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.stages!=null&&message.hasOwnProperty("stages")){if(!Array.isArray(message.stages))return"stages: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.Pipeline;if(object.stages){if(!Array.isArray(object.stages))throw TypeError(".google.firestore.v1.Pipeline.stages: array expected");message.stages=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.Pipeline.Stage,key,value;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{if(!(message.args&&message.args.length))message.args=[];message.args.push($root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{if(message.options===$util.emptyObject)message.options={};var end2=reader.uint32()+reader.pos;key="";value=null;while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=$root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1);break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.options,key);message.options[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};Stage.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Stage.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.args!=null&&message.hasOwnProperty("args")){if(!Array.isArray(message.args))return"args: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.Pipeline.Stage;if(object.name!=null)message.name=String(object.name);if(object.args){if(!Array.isArray(object.args))throw TypeError(".google.firestore.v1.Pipeline.Stage.args: array expected");message.args=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.BitSequence;while(reader.pos>>3){case 1:{message.bitmap=reader.bytes();break}case 2:{message.padding=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};BitSequence.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BitSequence.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.bitmap!=null&&message.hasOwnProperty("bitmap"))if(!(message.bitmap&&typeof message.bitmap.length==="number"||$util.isString(message.bitmap)))return"bitmap: buffer expected";if(message.padding!=null&&message.hasOwnProperty("padding"))if(!$util.isInteger(message.padding))return"padding: integer expected";return null};BitSequence.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.BitSequence)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.BitSequence;if(object.bitmap!=null)if(typeof object.bitmap==="string")$util.base64.decode(object.bitmap,message.bitmap=$util.newBuffer($util.base64.length(object.bitmap)),0);else if(object.bitmap.length>=0)message.bitmap=object.bitmap;if(object.padding!=null)message.padding=object.padding|0;return message};BitSequence.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){if(options.bytes===String)object.bitmap="";else{object.bitmap=[];if(options.bytes!==Array)object.bitmap=$util.newBuffer(object.bitmap)}object.padding=0}if(message.bitmap!=null&&message.hasOwnProperty("bitmap"))object.bitmap=options.bytes===String?$util.base64.encode(message.bitmap,0,message.bitmap.length):options.bytes===Array?Array.prototype.slice.call(message.bitmap):message.bitmap;if(message.padding!=null&&message.hasOwnProperty("padding"))object.padding=message.padding;return object};BitSequence.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BitSequence.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.BitSequence"};return BitSequence}();v1.BloomFilter=function(){function BloomFilter(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.BloomFilter;while(reader.pos>>3){case 1:{message.bits=$root.google.firestore.v1.BitSequence.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.hashCount=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};BloomFilter.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BloomFilter.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.bits!=null&&message.hasOwnProperty("bits")){var error=$root.google.firestore.v1.BitSequence.verify(message.bits,long+1);if(error)return"bits."+error}if(message.hashCount!=null&&message.hasOwnProperty("hashCount"))if(!$util.isInteger(message.hashCount))return"hashCount: integer expected";return null};BloomFilter.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.BloomFilter)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.BloomFilter;if(object.bits!=null){if(typeof object.bits!=="object")throw TypeError(".google.firestore.v1.BloomFilter.bits: object expected");message.bits=$root.google.firestore.v1.BitSequence.fromObject(object.bits,long+1)}if(object.hashCount!=null)message.hashCount=object.hashCount|0;return message};BloomFilter.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.bits=null;object.hashCount=0}if(message.bits!=null&&message.hasOwnProperty("bits"))object.bits=$root.google.firestore.v1.BitSequence.toObject(message.bits,options);if(message.hashCount!=null&&message.hasOwnProperty("hashCount"))object.hashCount=message.hashCount;return object};BloomFilter.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BloomFilter.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.BloomFilter"};return BloomFilter}();v1.DocumentMask=function(){function DocumentMask(properties){this.fieldPaths=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.DocumentMask;while(reader.pos>>3){case 1:{if(!(message.fieldPaths&&message.fieldPaths.length))message.fieldPaths=[];message.fieldPaths.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};DocumentMask.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DocumentMask.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.fieldPaths!=null&&message.hasOwnProperty("fieldPaths")){if(!Array.isArray(message.fieldPaths))return"fieldPaths: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.DocumentMask;if(object.fieldPaths){if(!Array.isArray(object.fieldPaths))throw TypeError(".google.firestore.v1.DocumentMask.fieldPaths: array expected");message.fieldPaths=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.Precondition;while(reader.pos>>3){case 1:{message.exists=reader.bool();break}case 2:{message.updateTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Precondition.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Precondition.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.exists!=null&&message.hasOwnProperty("exists")){properties.conditionType=1;if(typeof message.exists!=="boolean")return"exists: boolean expected"}if(message.updateTime!=null&&message.hasOwnProperty("updateTime")){if(properties.conditionType===1)return"conditionType: multiple values";properties.conditionType=1;{var error=$root.google.protobuf.Timestamp.verify(message.updateTime,long+1);if(error)return"updateTime."+error}}return null};Precondition.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.Precondition)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.Precondition;if(object.exists!=null)message.exists=Boolean(object.exists);if(object.updateTime!=null){if(typeof object.updateTime!=="object")throw TypeError(".google.firestore.v1.Precondition.updateTime: object expected");message.updateTime=$root.google.protobuf.Timestamp.fromObject(object.updateTime,long+1)}return message};Precondition.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.exists!=null&&message.hasOwnProperty("exists")){object.exists=message.exists;if(options.oneofs)object.conditionType="exists"}if(message.updateTime!=null&&message.hasOwnProperty("updateTime")){object.updateTime=$root.google.protobuf.Timestamp.toObject(message.updateTime,options);if(options.oneofs)object.conditionType="updateTime"}return object};Precondition.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Precondition.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.Precondition"};return Precondition}();v1.TransactionOptions=function(){function TransactionOptions(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.TransactionOptions;while(reader.pos>>3){case 2:{message.readOnly=$root.google.firestore.v1.TransactionOptions.ReadOnly.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.readWrite=$root.google.firestore.v1.TransactionOptions.ReadWrite.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};TransactionOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};TransactionOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.readOnly!=null&&message.hasOwnProperty("readOnly")){properties.mode=1;{var error=$root.google.firestore.v1.TransactionOptions.ReadOnly.verify(message.readOnly,long+1);if(error)return"readOnly."+error}}if(message.readWrite!=null&&message.hasOwnProperty("readWrite")){if(properties.mode===1)return"mode: multiple values";properties.mode=1;{var error=$root.google.firestore.v1.TransactionOptions.ReadWrite.verify(message.readWrite,long+1);if(error)return"readWrite."+error}}return null};TransactionOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.TransactionOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.TransactionOptions;if(object.readOnly!=null){if(typeof object.readOnly!=="object")throw TypeError(".google.firestore.v1.TransactionOptions.readOnly: object expected");message.readOnly=$root.google.firestore.v1.TransactionOptions.ReadOnly.fromObject(object.readOnly,long+1)}if(object.readWrite!=null){if(typeof object.readWrite!=="object")throw TypeError(".google.firestore.v1.TransactionOptions.readWrite: object expected");message.readWrite=$root.google.firestore.v1.TransactionOptions.ReadWrite.fromObject(object.readWrite,long+1)}return message};TransactionOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.readOnly!=null&&message.hasOwnProperty("readOnly")){object.readOnly=$root.google.firestore.v1.TransactionOptions.ReadOnly.toObject(message.readOnly,options);if(options.oneofs)object.mode="readOnly"}if(message.readWrite!=null&&message.hasOwnProperty("readWrite")){object.readWrite=$root.google.firestore.v1.TransactionOptions.ReadWrite.toObject(message.readWrite,options);if(options.oneofs)object.mode="readWrite"}return object};TransactionOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};TransactionOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.TransactionOptions"};TransactionOptions.ConcurrencyMode=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="CONCURRENCY_MODE_UNSPECIFIED"]=0;values[valuesById[1]="OPTIMISTIC"]=1;values[valuesById[2]="PESSIMISTIC"]=2;return values}();TransactionOptions.ReadWrite=function(){function ReadWrite(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.TransactionOptions.ReadWrite;while(reader.pos>>3){case 1:{message.retryTransaction=reader.bytes();break}case 2:{message.concurrencyMode=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};ReadWrite.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ReadWrite.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.retryTransaction!=null&&message.hasOwnProperty("retryTransaction"))if(!(message.retryTransaction&&typeof message.retryTransaction.length==="number"||$util.isString(message.retryTransaction)))return"retryTransaction: buffer expected";if(message.concurrencyMode!=null&&message.hasOwnProperty("concurrencyMode"))switch(message.concurrencyMode){default:return"concurrencyMode: enum value expected";case 0:case 1:case 2:break}return null};ReadWrite.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.TransactionOptions.ReadWrite)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.TransactionOptions.ReadWrite;if(object.retryTransaction!=null)if(typeof object.retryTransaction==="string")$util.base64.decode(object.retryTransaction,message.retryTransaction=$util.newBuffer($util.base64.length(object.retryTransaction)),0);else if(object.retryTransaction.length>=0)message.retryTransaction=object.retryTransaction;switch(object.concurrencyMode){default:if(typeof object.concurrencyMode==="number"){message.concurrencyMode=object.concurrencyMode;break}break;case"CONCURRENCY_MODE_UNSPECIFIED":case 0:message.concurrencyMode=0;break;case"OPTIMISTIC":case 1:message.concurrencyMode=1;break;case"PESSIMISTIC":case 2:message.concurrencyMode=2;break}return message};ReadWrite.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){if(options.bytes===String)object.retryTransaction="";else{object.retryTransaction=[];if(options.bytes!==Array)object.retryTransaction=$util.newBuffer(object.retryTransaction)}object.concurrencyMode=options.enums===String?"CONCURRENCY_MODE_UNSPECIFIED":0}if(message.retryTransaction!=null&&message.hasOwnProperty("retryTransaction"))object.retryTransaction=options.bytes===String?$util.base64.encode(message.retryTransaction,0,message.retryTransaction.length):options.bytes===Array?Array.prototype.slice.call(message.retryTransaction):message.retryTransaction;if(message.concurrencyMode!=null&&message.hasOwnProperty("concurrencyMode"))object.concurrencyMode=options.enums===String?$root.google.firestore.v1.TransactionOptions.ConcurrencyMode[message.concurrencyMode]===undefined?message.concurrencyMode:$root.google.firestore.v1.TransactionOptions.ConcurrencyMode[message.concurrencyMode]:message.concurrencyMode;return object};ReadWrite.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ReadWrite.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.TransactionOptions.ReadWrite"};return ReadWrite}();TransactionOptions.ReadOnly=function(){function ReadOnly(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.TransactionOptions.ReadOnly;while(reader.pos>>3){case 2:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ReadOnly.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ReadOnly.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.readTime!=null&&message.hasOwnProperty("readTime")){properties.consistencySelector=1;{var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}}return null};ReadOnly.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.TransactionOptions.ReadOnly)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.TransactionOptions.ReadOnly;if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.TransactionOptions.ReadOnly.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}return message};ReadOnly.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.readTime!=null&&message.hasOwnProperty("readTime")){object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(options.oneofs)object.consistencySelector="readTime"}return object};ReadOnly.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ReadOnly.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.TransactionOptions.ReadOnly"};return ReadOnly}();return TransactionOptions}();v1.ExplainStats=function(){function ExplainStats(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ExplainStats;while(reader.pos>>3){case 1:{message.data=$root.google.protobuf.Any.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ExplainStats.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExplainStats.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.data!=null&&message.hasOwnProperty("data")){var error=$root.google.protobuf.Any.verify(message.data,long+1);if(error)return"data."+error}return null};ExplainStats.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.ExplainStats)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ExplainStats;if(object.data!=null){if(typeof object.data!=="object")throw TypeError(".google.firestore.v1.ExplainStats.data: object expected");message.data=$root.google.protobuf.Any.fromObject(object.data,long+1)}return message};ExplainStats.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.data=null;if(message.data!=null&&message.hasOwnProperty("data"))object.data=$root.google.protobuf.Any.toObject(message.data,options);return object};ExplainStats.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ExplainStats.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.ExplainStats"};return ExplainStats}();v1.Firestore=function(){function Firestore(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited)}(Firestore.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=Firestore;Firestore.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited)};Object.defineProperty(Firestore.prototype.getDocument=function getDocument(request,callback){return this.rpcCall(getDocument,$root.google.firestore.v1.GetDocumentRequest,$root.google.firestore.v1.Document,request,callback)},"name",{value:"GetDocument"});Object.defineProperty(Firestore.prototype.listDocuments=function listDocuments(request,callback){return this.rpcCall(listDocuments,$root.google.firestore.v1.ListDocumentsRequest,$root.google.firestore.v1.ListDocumentsResponse,request,callback)},"name",{value:"ListDocuments"});Object.defineProperty(Firestore.prototype.updateDocument=function updateDocument(request,callback){return this.rpcCall(updateDocument,$root.google.firestore.v1.UpdateDocumentRequest,$root.google.firestore.v1.Document,request,callback)},"name",{value:"UpdateDocument"});Object.defineProperty(Firestore.prototype.deleteDocument=function deleteDocument(request,callback){return this.rpcCall(deleteDocument,$root.google.firestore.v1.DeleteDocumentRequest,$root.google.protobuf.Empty,request,callback)},"name",{value:"DeleteDocument"});Object.defineProperty(Firestore.prototype.batchGetDocuments=function batchGetDocuments(request,callback){return this.rpcCall(batchGetDocuments,$root.google.firestore.v1.BatchGetDocumentsRequest,$root.google.firestore.v1.BatchGetDocumentsResponse,request,callback)},"name",{value:"BatchGetDocuments"});Object.defineProperty(Firestore.prototype.beginTransaction=function beginTransaction(request,callback){return this.rpcCall(beginTransaction,$root.google.firestore.v1.BeginTransactionRequest,$root.google.firestore.v1.BeginTransactionResponse,request,callback)},"name",{value:"BeginTransaction"});Object.defineProperty(Firestore.prototype.commit=function commit(request,callback){return this.rpcCall(commit,$root.google.firestore.v1.CommitRequest,$root.google.firestore.v1.CommitResponse,request,callback)},"name",{value:"Commit"});Object.defineProperty(Firestore.prototype.rollback=function rollback(request,callback){return this.rpcCall(rollback,$root.google.firestore.v1.RollbackRequest,$root.google.protobuf.Empty,request,callback)},"name",{value:"Rollback"});Object.defineProperty(Firestore.prototype.runQuery=function runQuery(request,callback){return this.rpcCall(runQuery,$root.google.firestore.v1.RunQueryRequest,$root.google.firestore.v1.RunQueryResponse,request,callback)},"name",{value:"RunQuery"});Object.defineProperty(Firestore.prototype.executePipeline=function executePipeline(request,callback){return this.rpcCall(executePipeline,$root.google.firestore.v1.ExecutePipelineRequest,$root.google.firestore.v1.ExecutePipelineResponse,request,callback)},"name",{value:"ExecutePipeline"});Object.defineProperty(Firestore.prototype.runAggregationQuery=function runAggregationQuery(request,callback){return this.rpcCall(runAggregationQuery,$root.google.firestore.v1.RunAggregationQueryRequest,$root.google.firestore.v1.RunAggregationQueryResponse,request,callback)},"name",{value:"RunAggregationQuery"});Object.defineProperty(Firestore.prototype.partitionQuery=function partitionQuery(request,callback){return this.rpcCall(partitionQuery,$root.google.firestore.v1.PartitionQueryRequest,$root.google.firestore.v1.PartitionQueryResponse,request,callback)},"name",{value:"PartitionQuery"});Object.defineProperty(Firestore.prototype.write=function write(request,callback){return this.rpcCall(write,$root.google.firestore.v1.WriteRequest,$root.google.firestore.v1.WriteResponse,request,callback)},"name",{value:"Write"});Object.defineProperty(Firestore.prototype.listen=function listen(request,callback){return this.rpcCall(listen,$root.google.firestore.v1.ListenRequest,$root.google.firestore.v1.ListenResponse,request,callback)},"name",{value:"Listen"});Object.defineProperty(Firestore.prototype.listCollectionIds=function listCollectionIds(request,callback){return this.rpcCall(listCollectionIds,$root.google.firestore.v1.ListCollectionIdsRequest,$root.google.firestore.v1.ListCollectionIdsResponse,request,callback)},"name",{value:"ListCollectionIds"});Object.defineProperty(Firestore.prototype.batchWrite=function batchWrite(request,callback){return this.rpcCall(batchWrite,$root.google.firestore.v1.BatchWriteRequest,$root.google.firestore.v1.BatchWriteResponse,request,callback)},"name",{value:"BatchWrite"});Object.defineProperty(Firestore.prototype.createDocument=function createDocument(request,callback){return this.rpcCall(createDocument,$root.google.firestore.v1.CreateDocumentRequest,$root.google.firestore.v1.Document,request,callback)},"name",{value:"CreateDocument"});return Firestore}();v1.GetDocumentRequest=function(){function GetDocumentRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.GetDocumentRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{message.mask=$root.google.firestore.v1.DocumentMask.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.transaction=reader.bytes();break}case 5:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};GetDocumentRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GetDocumentRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.mask!=null&&message.hasOwnProperty("mask")){var error=$root.google.firestore.v1.DocumentMask.verify(message.mask,long+1);if(error)return"mask."+error}if(message.transaction!=null&&message.hasOwnProperty("transaction")){properties.consistencySelector=1;if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected"}if(message.readTime!=null&&message.hasOwnProperty("readTime")){if(properties.consistencySelector===1)return"consistencySelector: multiple values";properties.consistencySelector=1;{var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}}return null};GetDocumentRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.GetDocumentRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.GetDocumentRequest;if(object.name!=null)message.name=String(object.name);if(object.mask!=null){if(typeof object.mask!=="object")throw TypeError(".google.firestore.v1.GetDocumentRequest.mask: object expected");message.mask=$root.google.firestore.v1.DocumentMask.fromObject(object.mask,long+1)}if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.GetDocumentRequest.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}return message};GetDocumentRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.mask=null}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.mask!=null&&message.hasOwnProperty("mask"))object.mask=$root.google.firestore.v1.DocumentMask.toObject(message.mask,options);if(message.transaction!=null&&message.hasOwnProperty("transaction")){object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;if(options.oneofs)object.consistencySelector="transaction"}if(message.readTime!=null&&message.hasOwnProperty("readTime")){object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(options.oneofs)object.consistencySelector="readTime"}return object};GetDocumentRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GetDocumentRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.GetDocumentRequest"};return GetDocumentRequest}();v1.ListDocumentsRequest=function(){function ListDocumentsRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ListDocumentsRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.collectionId=reader.string();break}case 3:{message.pageSize=reader.int32();break}case 4:{message.pageToken=reader.string();break}case 6:{message.orderBy=reader.string();break}case 7:{message.mask=$root.google.firestore.v1.DocumentMask.decode(reader,reader.uint32(),undefined,long+1);break}case 8:{message.transaction=reader.bytes();break}case 10:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 12:{message.showMissing=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};ListDocumentsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListDocumentsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.collectionId!=null&&message.hasOwnProperty("collectionId"))if(!$util.isString(message.collectionId))return"collectionId: string expected";if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))if(!$util.isInteger(message.pageSize))return"pageSize: integer expected";if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))if(!$util.isString(message.pageToken))return"pageToken: string expected";if(message.orderBy!=null&&message.hasOwnProperty("orderBy"))if(!$util.isString(message.orderBy))return"orderBy: string expected";if(message.mask!=null&&message.hasOwnProperty("mask")){var error=$root.google.firestore.v1.DocumentMask.verify(message.mask,long+1);if(error)return"mask."+error}if(message.transaction!=null&&message.hasOwnProperty("transaction")){properties.consistencySelector=1;if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected"}if(message.readTime!=null&&message.hasOwnProperty("readTime")){if(properties.consistencySelector===1)return"consistencySelector: multiple values";properties.consistencySelector=1;{var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}}if(message.showMissing!=null&&message.hasOwnProperty("showMissing"))if(typeof message.showMissing!=="boolean")return"showMissing: boolean expected";return null};ListDocumentsRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.ListDocumentsRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ListDocumentsRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.collectionId!=null)message.collectionId=String(object.collectionId);if(object.pageSize!=null)message.pageSize=object.pageSize|0;if(object.pageToken!=null)message.pageToken=String(object.pageToken);if(object.orderBy!=null)message.orderBy=String(object.orderBy);if(object.mask!=null){if(typeof object.mask!=="object")throw TypeError(".google.firestore.v1.ListDocumentsRequest.mask: object expected");message.mask=$root.google.firestore.v1.DocumentMask.fromObject(object.mask,long+1)}if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.ListDocumentsRequest.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}if(object.showMissing!=null)message.showMissing=Boolean(object.showMissing);return message};ListDocumentsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.collectionId="";object.pageSize=0;object.pageToken="";object.orderBy="";object.mask=null;object.showMissing=false}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.collectionId!=null&&message.hasOwnProperty("collectionId"))object.collectionId=message.collectionId;if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))object.pageSize=message.pageSize;if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))object.pageToken=message.pageToken;if(message.orderBy!=null&&message.hasOwnProperty("orderBy"))object.orderBy=message.orderBy;if(message.mask!=null&&message.hasOwnProperty("mask"))object.mask=$root.google.firestore.v1.DocumentMask.toObject(message.mask,options);if(message.transaction!=null&&message.hasOwnProperty("transaction")){object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;if(options.oneofs)object.consistencySelector="transaction"}if(message.readTime!=null&&message.hasOwnProperty("readTime")){object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(options.oneofs)object.consistencySelector="readTime"}if(message.showMissing!=null&&message.hasOwnProperty("showMissing"))object.showMissing=message.showMissing;return object};ListDocumentsRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ListDocumentsRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.ListDocumentsRequest"};return ListDocumentsRequest}();v1.ListDocumentsResponse=function(){function ListDocumentsResponse(properties){this.documents=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ListDocumentsResponse;while(reader.pos>>3){case 1:{if(!(message.documents&&message.documents.length))message.documents=[];message.documents.push($root.google.firestore.v1.Document.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.nextPageToken=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ListDocumentsResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListDocumentsResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.documents!=null&&message.hasOwnProperty("documents")){if(!Array.isArray(message.documents))return"documents: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ListDocumentsResponse;if(object.documents){if(!Array.isArray(object.documents))throw TypeError(".google.firestore.v1.ListDocumentsResponse.documents: array expected");message.documents=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.CreateDocumentRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.collectionId=reader.string();break}case 3:{message.documentId=reader.string();break}case 4:{message.document=$root.google.firestore.v1.Document.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.mask=$root.google.firestore.v1.DocumentMask.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};CreateDocumentRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CreateDocumentRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.collectionId!=null&&message.hasOwnProperty("collectionId"))if(!$util.isString(message.collectionId))return"collectionId: string expected";if(message.documentId!=null&&message.hasOwnProperty("documentId"))if(!$util.isString(message.documentId))return"documentId: string expected";if(message.document!=null&&message.hasOwnProperty("document")){var error=$root.google.firestore.v1.Document.verify(message.document,long+1);if(error)return"document."+error}if(message.mask!=null&&message.hasOwnProperty("mask")){var error=$root.google.firestore.v1.DocumentMask.verify(message.mask,long+1);if(error)return"mask."+error}return null};CreateDocumentRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.CreateDocumentRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.CreateDocumentRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.collectionId!=null)message.collectionId=String(object.collectionId);if(object.documentId!=null)message.documentId=String(object.documentId);if(object.document!=null){if(typeof object.document!=="object")throw TypeError(".google.firestore.v1.CreateDocumentRequest.document: object expected");message.document=$root.google.firestore.v1.Document.fromObject(object.document,long+1)}if(object.mask!=null){if(typeof object.mask!=="object")throw TypeError(".google.firestore.v1.CreateDocumentRequest.mask: object expected");message.mask=$root.google.firestore.v1.DocumentMask.fromObject(object.mask,long+1)}return message};CreateDocumentRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.collectionId="";object.documentId="";object.document=null;object.mask=null}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.collectionId!=null&&message.hasOwnProperty("collectionId"))object.collectionId=message.collectionId;if(message.documentId!=null&&message.hasOwnProperty("documentId"))object.documentId=message.documentId;if(message.document!=null&&message.hasOwnProperty("document"))object.document=$root.google.firestore.v1.Document.toObject(message.document,options);if(message.mask!=null&&message.hasOwnProperty("mask"))object.mask=$root.google.firestore.v1.DocumentMask.toObject(message.mask,options);return object};CreateDocumentRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CreateDocumentRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.CreateDocumentRequest"};return CreateDocumentRequest}();v1.UpdateDocumentRequest=function(){function UpdateDocumentRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.UpdateDocumentRequest;while(reader.pos>>3){case 1:{message.document=$root.google.firestore.v1.Document.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.updateMask=$root.google.firestore.v1.DocumentMask.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.mask=$root.google.firestore.v1.DocumentMask.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.currentDocument=$root.google.firestore.v1.Precondition.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};UpdateDocumentRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UpdateDocumentRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.document!=null&&message.hasOwnProperty("document")){var error=$root.google.firestore.v1.Document.verify(message.document,long+1);if(error)return"document."+error}if(message.updateMask!=null&&message.hasOwnProperty("updateMask")){var error=$root.google.firestore.v1.DocumentMask.verify(message.updateMask,long+1);if(error)return"updateMask."+error}if(message.mask!=null&&message.hasOwnProperty("mask")){var error=$root.google.firestore.v1.DocumentMask.verify(message.mask,long+1);if(error)return"mask."+error}if(message.currentDocument!=null&&message.hasOwnProperty("currentDocument")){var error=$root.google.firestore.v1.Precondition.verify(message.currentDocument,long+1);if(error)return"currentDocument."+error}return null};UpdateDocumentRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.UpdateDocumentRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.UpdateDocumentRequest;if(object.document!=null){if(typeof object.document!=="object")throw TypeError(".google.firestore.v1.UpdateDocumentRequest.document: object expected");message.document=$root.google.firestore.v1.Document.fromObject(object.document,long+1)}if(object.updateMask!=null){if(typeof object.updateMask!=="object")throw TypeError(".google.firestore.v1.UpdateDocumentRequest.updateMask: object expected");message.updateMask=$root.google.firestore.v1.DocumentMask.fromObject(object.updateMask,long+1)}if(object.mask!=null){if(typeof object.mask!=="object")throw TypeError(".google.firestore.v1.UpdateDocumentRequest.mask: object expected");message.mask=$root.google.firestore.v1.DocumentMask.fromObject(object.mask,long+1)}if(object.currentDocument!=null){if(typeof object.currentDocument!=="object")throw TypeError(".google.firestore.v1.UpdateDocumentRequest.currentDocument: object expected");message.currentDocument=$root.google.firestore.v1.Precondition.fromObject(object.currentDocument,long+1)}return message};UpdateDocumentRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.document=null;object.updateMask=null;object.mask=null;object.currentDocument=null}if(message.document!=null&&message.hasOwnProperty("document"))object.document=$root.google.firestore.v1.Document.toObject(message.document,options);if(message.updateMask!=null&&message.hasOwnProperty("updateMask"))object.updateMask=$root.google.firestore.v1.DocumentMask.toObject(message.updateMask,options);if(message.mask!=null&&message.hasOwnProperty("mask"))object.mask=$root.google.firestore.v1.DocumentMask.toObject(message.mask,options);if(message.currentDocument!=null&&message.hasOwnProperty("currentDocument"))object.currentDocument=$root.google.firestore.v1.Precondition.toObject(message.currentDocument,options);return object};UpdateDocumentRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UpdateDocumentRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.UpdateDocumentRequest"};return UpdateDocumentRequest}();v1.DeleteDocumentRequest=function(){function DeleteDocumentRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.DeleteDocumentRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{message.currentDocument=$root.google.firestore.v1.Precondition.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};DeleteDocumentRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DeleteDocumentRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.currentDocument!=null&&message.hasOwnProperty("currentDocument")){var error=$root.google.firestore.v1.Precondition.verify(message.currentDocument,long+1);if(error)return"currentDocument."+error}return null};DeleteDocumentRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.DeleteDocumentRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.DeleteDocumentRequest;if(object.name!=null)message.name=String(object.name);if(object.currentDocument!=null){if(typeof object.currentDocument!=="object")throw TypeError(".google.firestore.v1.DeleteDocumentRequest.currentDocument: object expected");message.currentDocument=$root.google.firestore.v1.Precondition.fromObject(object.currentDocument,long+1)}return message};DeleteDocumentRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.currentDocument=null}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.currentDocument!=null&&message.hasOwnProperty("currentDocument"))object.currentDocument=$root.google.firestore.v1.Precondition.toObject(message.currentDocument,options);return object};DeleteDocumentRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DeleteDocumentRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.DeleteDocumentRequest"};return DeleteDocumentRequest}();v1.BatchGetDocumentsRequest=function(){function BatchGetDocumentsRequest(properties){this.documents=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.BatchGetDocumentsRequest;while(reader.pos>>3){case 1:{message.database=reader.string();break}case 2:{if(!(message.documents&&message.documents.length))message.documents=[];message.documents.push(reader.string());break}case 3:{message.mask=$root.google.firestore.v1.DocumentMask.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.transaction=reader.bytes();break}case 5:{message.newTransaction=$root.google.firestore.v1.TransactionOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};BatchGetDocumentsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BatchGetDocumentsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.documents!=null&&message.hasOwnProperty("documents")){if(!Array.isArray(message.documents))return"documents: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.BatchGetDocumentsRequest;if(object.database!=null)message.database=String(object.database);if(object.documents){if(!Array.isArray(object.documents))throw TypeError(".google.firestore.v1.BatchGetDocumentsRequest.documents: array expected");message.documents=[];for(var i=0;i=0)message.transaction=object.transaction;if(object.newTransaction!=null){if(typeof object.newTransaction!=="object")throw TypeError(".google.firestore.v1.BatchGetDocumentsRequest.newTransaction: object expected");message.newTransaction=$root.google.firestore.v1.TransactionOptions.fromObject(object.newTransaction,long+1)}if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.BatchGetDocumentsRequest.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}return message};BatchGetDocumentsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.documents=[];if(options.defaults){object.database="";object.mask=null}if(message.database!=null&&message.hasOwnProperty("database"))object.database=message.database;if(message.documents&&message.documents.length){object.documents=[];for(var j=0;j$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.BatchGetDocumentsResponse;while(reader.pos>>3){case 1:{message.found=$root.google.firestore.v1.Document.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.missing=reader.string();break}case 3:{message.transaction=reader.bytes();break}case 4:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};BatchGetDocumentsResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BatchGetDocumentsResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.found!=null&&message.hasOwnProperty("found")){properties.result=1;{var error=$root.google.firestore.v1.Document.verify(message.found,long+1);if(error)return"found."+error}}if(message.missing!=null&&message.hasOwnProperty("missing")){if(properties.result===1)return"result: multiple values";properties.result=1;if(!$util.isString(message.missing))return"missing: string expected"}if(message.transaction!=null&&message.hasOwnProperty("transaction"))if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected";if(message.readTime!=null&&message.hasOwnProperty("readTime")){var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}return null};BatchGetDocumentsResponse.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.BatchGetDocumentsResponse)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.BatchGetDocumentsResponse;if(object.found!=null){if(typeof object.found!=="object")throw TypeError(".google.firestore.v1.BatchGetDocumentsResponse.found: object expected");message.found=$root.google.firestore.v1.Document.fromObject(object.found,long+1)}if(object.missing!=null)message.missing=String(object.missing);if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.BatchGetDocumentsResponse.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}return message};BatchGetDocumentsResponse.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){if(options.bytes===String)object.transaction="";else{object.transaction=[];if(options.bytes!==Array)object.transaction=$util.newBuffer(object.transaction)}object.readTime=null}if(message.found!=null&&message.hasOwnProperty("found")){object.found=$root.google.firestore.v1.Document.toObject(message.found,options);if(options.oneofs)object.result="found"}if(message.missing!=null&&message.hasOwnProperty("missing")){object.missing=message.missing;if(options.oneofs)object.result="missing"}if(message.transaction!=null&&message.hasOwnProperty("transaction"))object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;if(message.readTime!=null&&message.hasOwnProperty("readTime"))object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);return object};BatchGetDocumentsResponse.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BatchGetDocumentsResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.BatchGetDocumentsResponse"};return BatchGetDocumentsResponse}();v1.BeginTransactionRequest=function(){function BeginTransactionRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.BeginTransactionRequest;while(reader.pos>>3){case 1:{message.database=reader.string();break}case 2:{message.options=$root.google.firestore.v1.TransactionOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};BeginTransactionRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BeginTransactionRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.firestore.v1.TransactionOptions.verify(message.options,long+1);if(error)return"options."+error}return null};BeginTransactionRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.BeginTransactionRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.BeginTransactionRequest;if(object.database!=null)message.database=String(object.database);if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.firestore.v1.BeginTransactionRequest.options: object expected");message.options=$root.google.firestore.v1.TransactionOptions.fromObject(object.options,long+1)}return message};BeginTransactionRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.database="";object.options=null}if(message.database!=null&&message.hasOwnProperty("database"))object.database=message.database;if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.firestore.v1.TransactionOptions.toObject(message.options,options);return object};BeginTransactionRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BeginTransactionRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.BeginTransactionRequest"};return BeginTransactionRequest}();v1.BeginTransactionResponse=function(){function BeginTransactionResponse(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.BeginTransactionResponse;while(reader.pos>>3){case 1:{message.transaction=reader.bytes();break}default:reader.skipType(tag&7,long);break}}return message};BeginTransactionResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BeginTransactionResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.transaction!=null&&message.hasOwnProperty("transaction"))if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected";return null};BeginTransactionResponse.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.BeginTransactionResponse)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.BeginTransactionResponse;if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;return message};BeginTransactionResponse.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)if(options.bytes===String)object.transaction="";else{object.transaction=[];if(options.bytes!==Array)object.transaction=$util.newBuffer(object.transaction)}if(message.transaction!=null&&message.hasOwnProperty("transaction"))object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;return object};BeginTransactionResponse.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BeginTransactionResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.BeginTransactionResponse"};return BeginTransactionResponse}();v1.CommitRequest=function(){function CommitRequest(properties){this.writes=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.CommitRequest;while(reader.pos>>3){case 1:{message.database=reader.string();break}case 2:{if(!(message.writes&&message.writes.length))message.writes=[];message.writes.push($root.google.firestore.v1.Write.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{message.transaction=reader.bytes();break}default:reader.skipType(tag&7,long);break}}return message};CommitRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CommitRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.writes!=null&&message.hasOwnProperty("writes")){if(!Array.isArray(message.writes))return"writes: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.CommitRequest;if(object.database!=null)message.database=String(object.database);if(object.writes){if(!Array.isArray(object.writes))throw TypeError(".google.firestore.v1.CommitRequest.writes: array expected");message.writes=[];for(var i=0;i=0)message.transaction=object.transaction;return message};CommitRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.writes=[];if(options.defaults){object.database="";if(options.bytes===String)object.transaction="";else{object.transaction=[];if(options.bytes!==Array)object.transaction=$util.newBuffer(object.transaction)}}if(message.database!=null&&message.hasOwnProperty("database"))object.database=message.database;if(message.writes&&message.writes.length){object.writes=[];for(var j=0;j$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.CommitResponse;while(reader.pos>>3){case 1:{if(!(message.writeResults&&message.writeResults.length))message.writeResults=[];message.writeResults.push($root.google.firestore.v1.WriteResult.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.commitTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};CommitResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CommitResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.writeResults!=null&&message.hasOwnProperty("writeResults")){if(!Array.isArray(message.writeResults))return"writeResults: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.CommitResponse;if(object.writeResults){if(!Array.isArray(object.writeResults))throw TypeError(".google.firestore.v1.CommitResponse.writeResults: array expected");message.writeResults=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.RollbackRequest;while(reader.pos>>3){case 1:{message.database=reader.string();break}case 2:{message.transaction=reader.bytes();break}default:reader.skipType(tag&7,long);break}}return message};RollbackRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RollbackRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.transaction!=null&&message.hasOwnProperty("transaction"))if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected";return null};RollbackRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.RollbackRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.RollbackRequest;if(object.database!=null)message.database=String(object.database);if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;return message};RollbackRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.database="";if(options.bytes===String)object.transaction="";else{object.transaction=[];if(options.bytes!==Array)object.transaction=$util.newBuffer(object.transaction)}}if(message.database!=null&&message.hasOwnProperty("database"))object.database=message.database;if(message.transaction!=null&&message.hasOwnProperty("transaction"))object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;return object};RollbackRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RollbackRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.RollbackRequest"};return RollbackRequest}();v1.RunQueryRequest=function(){function RunQueryRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.RunQueryRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.structuredQuery=$root.google.firestore.v1.StructuredQuery.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.transaction=reader.bytes();break}case 6:{message.newTransaction=$root.google.firestore.v1.TransactionOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 10:{message.explainOptions=$root.google.firestore.v1.ExplainOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RunQueryRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RunQueryRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.structuredQuery!=null&&message.hasOwnProperty("structuredQuery")){properties.queryType=1;{var error=$root.google.firestore.v1.StructuredQuery.verify(message.structuredQuery,long+1);if(error)return"structuredQuery."+error}}if(message.transaction!=null&&message.hasOwnProperty("transaction")){properties.consistencySelector=1;if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected"}if(message.newTransaction!=null&&message.hasOwnProperty("newTransaction")){if(properties.consistencySelector===1)return"consistencySelector: multiple values";properties.consistencySelector=1;{var error=$root.google.firestore.v1.TransactionOptions.verify(message.newTransaction,long+1);if(error)return"newTransaction."+error}}if(message.readTime!=null&&message.hasOwnProperty("readTime")){if(properties.consistencySelector===1)return"consistencySelector: multiple values";properties.consistencySelector=1;{var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}}if(message.explainOptions!=null&&message.hasOwnProperty("explainOptions")){var error=$root.google.firestore.v1.ExplainOptions.verify(message.explainOptions,long+1);if(error)return"explainOptions."+error}return null};RunQueryRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.RunQueryRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.RunQueryRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.structuredQuery!=null){if(typeof object.structuredQuery!=="object")throw TypeError(".google.firestore.v1.RunQueryRequest.structuredQuery: object expected");message.structuredQuery=$root.google.firestore.v1.StructuredQuery.fromObject(object.structuredQuery,long+1)}if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;if(object.newTransaction!=null){if(typeof object.newTransaction!=="object")throw TypeError(".google.firestore.v1.RunQueryRequest.newTransaction: object expected");message.newTransaction=$root.google.firestore.v1.TransactionOptions.fromObject(object.newTransaction,long+1)}if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.RunQueryRequest.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}if(object.explainOptions!=null){if(typeof object.explainOptions!=="object")throw TypeError(".google.firestore.v1.RunQueryRequest.explainOptions: object expected");message.explainOptions=$root.google.firestore.v1.ExplainOptions.fromObject(object.explainOptions,long+1)}return message};RunQueryRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.explainOptions=null}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.structuredQuery!=null&&message.hasOwnProperty("structuredQuery")){object.structuredQuery=$root.google.firestore.v1.StructuredQuery.toObject(message.structuredQuery,options);if(options.oneofs)object.queryType="structuredQuery"}if(message.transaction!=null&&message.hasOwnProperty("transaction")){object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;if(options.oneofs)object.consistencySelector="transaction"}if(message.newTransaction!=null&&message.hasOwnProperty("newTransaction")){object.newTransaction=$root.google.firestore.v1.TransactionOptions.toObject(message.newTransaction,options);if(options.oneofs)object.consistencySelector="newTransaction"}if(message.readTime!=null&&message.hasOwnProperty("readTime")){object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(options.oneofs)object.consistencySelector="readTime"}if(message.explainOptions!=null&&message.hasOwnProperty("explainOptions"))object.explainOptions=$root.google.firestore.v1.ExplainOptions.toObject(message.explainOptions,options);return object};RunQueryRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RunQueryRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.RunQueryRequest"};return RunQueryRequest}();v1.RunQueryResponse=function(){function RunQueryResponse(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.RunQueryResponse;while(reader.pos>>3){case 2:{message.transaction=reader.bytes();break}case 1:{message.document=$root.google.firestore.v1.Document.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.skippedResults=reader.int32();break}case 6:{message.done=reader.bool();break}case 11:{message.explainMetrics=$root.google.firestore.v1.ExplainMetrics.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RunQueryResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RunQueryResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.transaction!=null&&message.hasOwnProperty("transaction"))if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected";if(message.document!=null&&message.hasOwnProperty("document")){var error=$root.google.firestore.v1.Document.verify(message.document,long+1);if(error)return"document."+error}if(message.readTime!=null&&message.hasOwnProperty("readTime")){var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}if(message.skippedResults!=null&&message.hasOwnProperty("skippedResults"))if(!$util.isInteger(message.skippedResults))return"skippedResults: integer expected";if(message.done!=null&&message.hasOwnProperty("done")){properties.continuationSelector=1;if(typeof message.done!=="boolean")return"done: boolean expected"}if(message.explainMetrics!=null&&message.hasOwnProperty("explainMetrics")){var error=$root.google.firestore.v1.ExplainMetrics.verify(message.explainMetrics,long+1);if(error)return"explainMetrics."+error}return null};RunQueryResponse.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.RunQueryResponse)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.RunQueryResponse;if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;if(object.document!=null){if(typeof object.document!=="object")throw TypeError(".google.firestore.v1.RunQueryResponse.document: object expected");message.document=$root.google.firestore.v1.Document.fromObject(object.document,long+1)}if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.RunQueryResponse.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}if(object.skippedResults!=null)message.skippedResults=object.skippedResults|0;if(object.done!=null)message.done=Boolean(object.done);if(object.explainMetrics!=null){if(typeof object.explainMetrics!=="object")throw TypeError(".google.firestore.v1.RunQueryResponse.explainMetrics: object expected");message.explainMetrics=$root.google.firestore.v1.ExplainMetrics.fromObject(object.explainMetrics,long+1)}return message};RunQueryResponse.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.document=null;if(options.bytes===String)object.transaction="";else{object.transaction=[];if(options.bytes!==Array)object.transaction=$util.newBuffer(object.transaction)}object.readTime=null;object.skippedResults=0;object.explainMetrics=null}if(message.document!=null&&message.hasOwnProperty("document"))object.document=$root.google.firestore.v1.Document.toObject(message.document,options);if(message.transaction!=null&&message.hasOwnProperty("transaction"))object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;if(message.readTime!=null&&message.hasOwnProperty("readTime"))object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(message.skippedResults!=null&&message.hasOwnProperty("skippedResults"))object.skippedResults=message.skippedResults;if(message.done!=null&&message.hasOwnProperty("done")){object.done=message.done;if(options.oneofs)object.continuationSelector="done"}if(message.explainMetrics!=null&&message.hasOwnProperty("explainMetrics"))object.explainMetrics=$root.google.firestore.v1.ExplainMetrics.toObject(message.explainMetrics,options);return object};RunQueryResponse.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RunQueryResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.RunQueryResponse"};return RunQueryResponse}();v1.ExecutePipelineRequest=function(){function ExecutePipelineRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ExecutePipelineRequest;while(reader.pos>>3){case 1:{message.database=reader.string();break}case 2:{message.structuredPipeline=$root.google.firestore.v1.StructuredPipeline.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.transaction=reader.bytes();break}case 6:{message.newTransaction=$root.google.firestore.v1.TransactionOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 9:{message.autoCommitTransaction=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};ExecutePipelineRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExecutePipelineRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.structuredPipeline!=null&&message.hasOwnProperty("structuredPipeline")){properties.pipelineType=1;{var error=$root.google.firestore.v1.StructuredPipeline.verify(message.structuredPipeline,long+1);if(error)return"structuredPipeline."+error}}if(message.transaction!=null&&message.hasOwnProperty("transaction")){properties.consistencySelector=1;if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected"}if(message.newTransaction!=null&&message.hasOwnProperty("newTransaction")){if(properties.consistencySelector===1)return"consistencySelector: multiple values";properties.consistencySelector=1;{var error=$root.google.firestore.v1.TransactionOptions.verify(message.newTransaction,long+1);if(error)return"newTransaction."+error}}if(message.readTime!=null&&message.hasOwnProperty("readTime")){if(properties.consistencySelector===1)return"consistencySelector: multiple values";properties.consistencySelector=1;{var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}}if(message.autoCommitTransaction!=null&&message.hasOwnProperty("autoCommitTransaction"))if(typeof message.autoCommitTransaction!=="boolean")return"autoCommitTransaction: boolean expected";return null};ExecutePipelineRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.ExecutePipelineRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ExecutePipelineRequest;if(object.database!=null)message.database=String(object.database);if(object.structuredPipeline!=null){if(typeof object.structuredPipeline!=="object")throw TypeError(".google.firestore.v1.ExecutePipelineRequest.structuredPipeline: object expected");message.structuredPipeline=$root.google.firestore.v1.StructuredPipeline.fromObject(object.structuredPipeline,long+1)}if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;if(object.newTransaction!=null){if(typeof object.newTransaction!=="object")throw TypeError(".google.firestore.v1.ExecutePipelineRequest.newTransaction: object expected");message.newTransaction=$root.google.firestore.v1.TransactionOptions.fromObject(object.newTransaction,long+1)}if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.ExecutePipelineRequest.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}if(object.autoCommitTransaction!=null)message.autoCommitTransaction=Boolean(object.autoCommitTransaction);return message};ExecutePipelineRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.database="";object.autoCommitTransaction=false}if(message.database!=null&&message.hasOwnProperty("database"))object.database=message.database;if(message.structuredPipeline!=null&&message.hasOwnProperty("structuredPipeline")){object.structuredPipeline=$root.google.firestore.v1.StructuredPipeline.toObject(message.structuredPipeline,options);if(options.oneofs)object.pipelineType="structuredPipeline"}if(message.transaction!=null&&message.hasOwnProperty("transaction")){object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;if(options.oneofs)object.consistencySelector="transaction"}if(message.newTransaction!=null&&message.hasOwnProperty("newTransaction")){object.newTransaction=$root.google.firestore.v1.TransactionOptions.toObject(message.newTransaction,options);if(options.oneofs)object.consistencySelector="newTransaction"}if(message.readTime!=null&&message.hasOwnProperty("readTime")){object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(options.oneofs)object.consistencySelector="readTime"}if(message.autoCommitTransaction!=null&&message.hasOwnProperty("autoCommitTransaction"))object.autoCommitTransaction=message.autoCommitTransaction;return object};ExecutePipelineRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ExecutePipelineRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.ExecutePipelineRequest"};return ExecutePipelineRequest}();v1.ExecutePipelineResponse=function(){function ExecutePipelineResponse(properties){this.results=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ExecutePipelineResponse;while(reader.pos>>3){case 1:{message.transaction=reader.bytes();break}case 2:{if(!(message.results&&message.results.length))message.results=[];message.results.push($root.google.firestore.v1.Document.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{message.executionTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.explainStats=$root.google.firestore.v1.ExplainStats.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ExecutePipelineResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExecutePipelineResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.transaction!=null&&message.hasOwnProperty("transaction"))if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected";if(message.results!=null&&message.hasOwnProperty("results")){if(!Array.isArray(message.results))return"results: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ExecutePipelineResponse;if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;if(object.results){if(!Array.isArray(object.results))throw TypeError(".google.firestore.v1.ExecutePipelineResponse.results: array expected");message.results=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.RunAggregationQueryRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.structuredAggregationQuery=$root.google.firestore.v1.StructuredAggregationQuery.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.transaction=reader.bytes();break}case 5:{message.newTransaction=$root.google.firestore.v1.TransactionOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 8:{message.explainOptions=$root.google.firestore.v1.ExplainOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RunAggregationQueryRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RunAggregationQueryRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.structuredAggregationQuery!=null&&message.hasOwnProperty("structuredAggregationQuery")){properties.queryType=1;{var error=$root.google.firestore.v1.StructuredAggregationQuery.verify(message.structuredAggregationQuery,long+1);if(error)return"structuredAggregationQuery."+error}}if(message.transaction!=null&&message.hasOwnProperty("transaction")){properties.consistencySelector=1;if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected"}if(message.newTransaction!=null&&message.hasOwnProperty("newTransaction")){if(properties.consistencySelector===1)return"consistencySelector: multiple values";properties.consistencySelector=1;{var error=$root.google.firestore.v1.TransactionOptions.verify(message.newTransaction,long+1);if(error)return"newTransaction."+error}}if(message.readTime!=null&&message.hasOwnProperty("readTime")){if(properties.consistencySelector===1)return"consistencySelector: multiple values";properties.consistencySelector=1;{var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}}if(message.explainOptions!=null&&message.hasOwnProperty("explainOptions")){var error=$root.google.firestore.v1.ExplainOptions.verify(message.explainOptions,long+1);if(error)return"explainOptions."+error}return null};RunAggregationQueryRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.RunAggregationQueryRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.RunAggregationQueryRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.structuredAggregationQuery!=null){if(typeof object.structuredAggregationQuery!=="object")throw TypeError(".google.firestore.v1.RunAggregationQueryRequest.structuredAggregationQuery: object expected");message.structuredAggregationQuery=$root.google.firestore.v1.StructuredAggregationQuery.fromObject(object.structuredAggregationQuery,long+1)}if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;if(object.newTransaction!=null){if(typeof object.newTransaction!=="object")throw TypeError(".google.firestore.v1.RunAggregationQueryRequest.newTransaction: object expected");message.newTransaction=$root.google.firestore.v1.TransactionOptions.fromObject(object.newTransaction,long+1)}if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.RunAggregationQueryRequest.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}if(object.explainOptions!=null){if(typeof object.explainOptions!=="object")throw TypeError(".google.firestore.v1.RunAggregationQueryRequest.explainOptions: object expected");message.explainOptions=$root.google.firestore.v1.ExplainOptions.fromObject(object.explainOptions,long+1)}return message};RunAggregationQueryRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.explainOptions=null}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.structuredAggregationQuery!=null&&message.hasOwnProperty("structuredAggregationQuery")){object.structuredAggregationQuery=$root.google.firestore.v1.StructuredAggregationQuery.toObject(message.structuredAggregationQuery,options);if(options.oneofs)object.queryType="structuredAggregationQuery"}if(message.transaction!=null&&message.hasOwnProperty("transaction")){object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;if(options.oneofs)object.consistencySelector="transaction"}if(message.newTransaction!=null&&message.hasOwnProperty("newTransaction")){object.newTransaction=$root.google.firestore.v1.TransactionOptions.toObject(message.newTransaction,options);if(options.oneofs)object.consistencySelector="newTransaction"}if(message.readTime!=null&&message.hasOwnProperty("readTime")){object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(options.oneofs)object.consistencySelector="readTime"}if(message.explainOptions!=null&&message.hasOwnProperty("explainOptions"))object.explainOptions=$root.google.firestore.v1.ExplainOptions.toObject(message.explainOptions,options);return object};RunAggregationQueryRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RunAggregationQueryRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.RunAggregationQueryRequest"};return RunAggregationQueryRequest}();v1.RunAggregationQueryResponse=function(){function RunAggregationQueryResponse(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.RunAggregationQueryResponse;while(reader.pos>>3){case 1:{message.result=$root.google.firestore.v1.AggregationResult.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.transaction=reader.bytes();break}case 3:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 10:{message.explainMetrics=$root.google.firestore.v1.ExplainMetrics.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RunAggregationQueryResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RunAggregationQueryResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.result!=null&&message.hasOwnProperty("result")){var error=$root.google.firestore.v1.AggregationResult.verify(message.result,long+1);if(error)return"result."+error}if(message.transaction!=null&&message.hasOwnProperty("transaction"))if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected";if(message.readTime!=null&&message.hasOwnProperty("readTime")){var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}if(message.explainMetrics!=null&&message.hasOwnProperty("explainMetrics")){var error=$root.google.firestore.v1.ExplainMetrics.verify(message.explainMetrics,long+1);if(error)return"explainMetrics."+error}return null};RunAggregationQueryResponse.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.RunAggregationQueryResponse)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.RunAggregationQueryResponse;if(object.result!=null){if(typeof object.result!=="object")throw TypeError(".google.firestore.v1.RunAggregationQueryResponse.result: object expected");message.result=$root.google.firestore.v1.AggregationResult.fromObject(object.result,long+1)}if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.RunAggregationQueryResponse.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}if(object.explainMetrics!=null){if(typeof object.explainMetrics!=="object")throw TypeError(".google.firestore.v1.RunAggregationQueryResponse.explainMetrics: object expected");message.explainMetrics=$root.google.firestore.v1.ExplainMetrics.fromObject(object.explainMetrics,long+1)}return message};RunAggregationQueryResponse.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.result=null;if(options.bytes===String)object.transaction="";else{object.transaction=[];if(options.bytes!==Array)object.transaction=$util.newBuffer(object.transaction)}object.readTime=null;object.explainMetrics=null}if(message.result!=null&&message.hasOwnProperty("result"))object.result=$root.google.firestore.v1.AggregationResult.toObject(message.result,options);if(message.transaction!=null&&message.hasOwnProperty("transaction"))object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;if(message.readTime!=null&&message.hasOwnProperty("readTime"))object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(message.explainMetrics!=null&&message.hasOwnProperty("explainMetrics"))object.explainMetrics=$root.google.firestore.v1.ExplainMetrics.toObject(message.explainMetrics,options);return object};RunAggregationQueryResponse.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RunAggregationQueryResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.RunAggregationQueryResponse"};return RunAggregationQueryResponse}();v1.PartitionQueryRequest=function(){function PartitionQueryRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.PartitionQueryRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.structuredQuery=$root.google.firestore.v1.StructuredQuery.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.partitionCount=reader.int64();break}case 4:{message.pageToken=reader.string();break}case 5:{message.pageSize=reader.int32();break}case 6:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};PartitionQueryRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};PartitionQueryRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.structuredQuery!=null&&message.hasOwnProperty("structuredQuery")){properties.queryType=1;{var error=$root.google.firestore.v1.StructuredQuery.verify(message.structuredQuery,long+1);if(error)return"structuredQuery."+error}}if(message.partitionCount!=null&&message.hasOwnProperty("partitionCount"))if(!$util.isInteger(message.partitionCount)&&!(message.partitionCount&&$util.isInteger(message.partitionCount.low)&&$util.isInteger(message.partitionCount.high)))return"partitionCount: integer|Long expected";if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))if(!$util.isString(message.pageToken))return"pageToken: string expected";if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))if(!$util.isInteger(message.pageSize))return"pageSize: integer expected";if(message.readTime!=null&&message.hasOwnProperty("readTime")){properties.consistencySelector=1;{var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}}return null};PartitionQueryRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.PartitionQueryRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.PartitionQueryRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.structuredQuery!=null){if(typeof object.structuredQuery!=="object")throw TypeError(".google.firestore.v1.PartitionQueryRequest.structuredQuery: object expected");message.structuredQuery=$root.google.firestore.v1.StructuredQuery.fromObject(object.structuredQuery,long+1)}if(object.partitionCount!=null)if($util.Long)(message.partitionCount=$util.Long.fromValue(object.partitionCount)).unsigned=false;else if(typeof object.partitionCount==="string")message.partitionCount=parseInt(object.partitionCount,10);else if(typeof object.partitionCount==="number")message.partitionCount=object.partitionCount;else if(typeof object.partitionCount==="object")message.partitionCount=new $util.LongBits(object.partitionCount.low>>>0,object.partitionCount.high>>>0).toNumber();if(object.pageToken!=null)message.pageToken=String(object.pageToken);if(object.pageSize!=null)message.pageSize=object.pageSize|0;if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.PartitionQueryRequest.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}return message};PartitionQueryRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";if($util.Long){var long=new $util.Long(0,0,false);object.partitionCount=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.partitionCount=options.longs===String?"0":0;object.pageToken="";object.pageSize=0}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.structuredQuery!=null&&message.hasOwnProperty("structuredQuery")){object.structuredQuery=$root.google.firestore.v1.StructuredQuery.toObject(message.structuredQuery,options);if(options.oneofs)object.queryType="structuredQuery"}if(message.partitionCount!=null&&message.hasOwnProperty("partitionCount"))if(typeof message.partitionCount==="number")object.partitionCount=options.longs===String?String(message.partitionCount):message.partitionCount;else object.partitionCount=options.longs===String?$util.Long.prototype.toString.call(message.partitionCount):options.longs===Number?new $util.LongBits(message.partitionCount.low>>>0,message.partitionCount.high>>>0).toNumber():message.partitionCount;if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))object.pageToken=message.pageToken;if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))object.pageSize=message.pageSize;if(message.readTime!=null&&message.hasOwnProperty("readTime")){object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(options.oneofs)object.consistencySelector="readTime"}return object};PartitionQueryRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};PartitionQueryRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.PartitionQueryRequest"};return PartitionQueryRequest}();v1.PartitionQueryResponse=function(){function PartitionQueryResponse(properties){this.partitions=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.PartitionQueryResponse;while(reader.pos>>3){case 1:{if(!(message.partitions&&message.partitions.length))message.partitions=[];message.partitions.push($root.google.firestore.v1.Cursor.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.nextPageToken=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};PartitionQueryResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};PartitionQueryResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.partitions!=null&&message.hasOwnProperty("partitions")){if(!Array.isArray(message.partitions))return"partitions: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.PartitionQueryResponse;if(object.partitions){if(!Array.isArray(object.partitions))throw TypeError(".google.firestore.v1.PartitionQueryResponse.partitions: array expected");message.partitions=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.WriteRequest,key,value;while(reader.pos>>3){case 1:{message.database=reader.string();break}case 2:{message.streamId=reader.string();break}case 3:{if(!(message.writes&&message.writes.length))message.writes=[];message.writes.push($root.google.firestore.v1.Write.decode(reader,reader.uint32(),undefined,long+1));break}case 4:{message.streamToken=reader.bytes();break}case 5:{if(message.labels===$util.emptyObject)message.labels={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.labels,key);message.labels[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};WriteRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};WriteRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.streamId!=null&&message.hasOwnProperty("streamId"))if(!$util.isString(message.streamId))return"streamId: string expected";if(message.writes!=null&&message.hasOwnProperty("writes")){if(!Array.isArray(message.writes))return"writes: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.WriteRequest;if(object.database!=null)message.database=String(object.database);if(object.streamId!=null)message.streamId=String(object.streamId);if(object.writes){if(!Array.isArray(object.writes))throw TypeError(".google.firestore.v1.WriteRequest.writes: array expected");message.writes=[];for(var i=0;i=0)message.streamToken=object.streamToken;if(object.labels){if(typeof object.labels!=="object")throw TypeError(".google.firestore.v1.WriteRequest.labels: object expected");message.labels={};for(var keys=Object.keys(object.labels),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.WriteResponse;while(reader.pos>>3){case 1:{message.streamId=reader.string();break}case 2:{message.streamToken=reader.bytes();break}case 3:{if(!(message.writeResults&&message.writeResults.length))message.writeResults=[];message.writeResults.push($root.google.firestore.v1.WriteResult.decode(reader,reader.uint32(),undefined,long+1));break}case 4:{message.commitTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};WriteResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};WriteResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.streamId!=null&&message.hasOwnProperty("streamId"))if(!$util.isString(message.streamId))return"streamId: string expected";if(message.streamToken!=null&&message.hasOwnProperty("streamToken"))if(!(message.streamToken&&typeof message.streamToken.length==="number"||$util.isString(message.streamToken)))return"streamToken: buffer expected";if(message.writeResults!=null&&message.hasOwnProperty("writeResults")){if(!Array.isArray(message.writeResults))return"writeResults: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.WriteResponse;if(object.streamId!=null)message.streamId=String(object.streamId);if(object.streamToken!=null)if(typeof object.streamToken==="string")$util.base64.decode(object.streamToken,message.streamToken=$util.newBuffer($util.base64.length(object.streamToken)),0);else if(object.streamToken.length>=0)message.streamToken=object.streamToken;if(object.writeResults){if(!Array.isArray(object.writeResults))throw TypeError(".google.firestore.v1.WriteResponse.writeResults: array expected");message.writeResults=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ListenRequest,key,value;while(reader.pos>>3){case 1:{message.database=reader.string();break}case 2:{message.addTarget=$root.google.firestore.v1.Target.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.removeTarget=reader.int32();break}case 4:{if(message.labels===$util.emptyObject)message.labels={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.labels,key);message.labels[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};ListenRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListenRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.addTarget!=null&&message.hasOwnProperty("addTarget")){properties.targetChange=1;{var error=$root.google.firestore.v1.Target.verify(message.addTarget,long+1);if(error)return"addTarget."+error}}if(message.removeTarget!=null&&message.hasOwnProperty("removeTarget")){if(properties.targetChange===1)return"targetChange: multiple values";properties.targetChange=1;if(!$util.isInteger(message.removeTarget))return"removeTarget: integer expected"}if(message.labels!=null&&message.hasOwnProperty("labels")){if(!$util.isObject(message.labels))return"labels: object expected";var key=Object.keys(message.labels);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ListenRequest;if(object.database!=null)message.database=String(object.database);if(object.addTarget!=null){if(typeof object.addTarget!=="object")throw TypeError(".google.firestore.v1.ListenRequest.addTarget: object expected");message.addTarget=$root.google.firestore.v1.Target.fromObject(object.addTarget,long+1)}if(object.removeTarget!=null)message.removeTarget=object.removeTarget|0;if(object.labels){if(typeof object.labels!=="object")throw TypeError(".google.firestore.v1.ListenRequest.labels: object expected");message.labels={};for(var keys=Object.keys(object.labels),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ListenResponse;while(reader.pos>>3){case 2:{message.targetChange=$root.google.firestore.v1.TargetChange.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.documentChange=$root.google.firestore.v1.DocumentChange.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.documentDelete=$root.google.firestore.v1.DocumentDelete.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.documentRemove=$root.google.firestore.v1.DocumentRemove.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.filter=$root.google.firestore.v1.ExistenceFilter.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ListenResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListenResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.targetChange!=null&&message.hasOwnProperty("targetChange")){properties.responseType=1;{var error=$root.google.firestore.v1.TargetChange.verify(message.targetChange,long+1);if(error)return"targetChange."+error}}if(message.documentChange!=null&&message.hasOwnProperty("documentChange")){if(properties.responseType===1)return"responseType: multiple values";properties.responseType=1;{var error=$root.google.firestore.v1.DocumentChange.verify(message.documentChange,long+1);if(error)return"documentChange."+error}}if(message.documentDelete!=null&&message.hasOwnProperty("documentDelete")){if(properties.responseType===1)return"responseType: multiple values";properties.responseType=1;{var error=$root.google.firestore.v1.DocumentDelete.verify(message.documentDelete,long+1);if(error)return"documentDelete."+error}}if(message.documentRemove!=null&&message.hasOwnProperty("documentRemove")){if(properties.responseType===1)return"responseType: multiple values";properties.responseType=1;{var error=$root.google.firestore.v1.DocumentRemove.verify(message.documentRemove,long+1);if(error)return"documentRemove."+error}}if(message.filter!=null&&message.hasOwnProperty("filter")){if(properties.responseType===1)return"responseType: multiple values";properties.responseType=1;{var error=$root.google.firestore.v1.ExistenceFilter.verify(message.filter,long+1);if(error)return"filter."+error}}return null};ListenResponse.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.ListenResponse)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ListenResponse;if(object.targetChange!=null){if(typeof object.targetChange!=="object")throw TypeError(".google.firestore.v1.ListenResponse.targetChange: object expected");message.targetChange=$root.google.firestore.v1.TargetChange.fromObject(object.targetChange,long+1)}if(object.documentChange!=null){if(typeof object.documentChange!=="object")throw TypeError(".google.firestore.v1.ListenResponse.documentChange: object expected");message.documentChange=$root.google.firestore.v1.DocumentChange.fromObject(object.documentChange,long+1)}if(object.documentDelete!=null){if(typeof object.documentDelete!=="object")throw TypeError(".google.firestore.v1.ListenResponse.documentDelete: object expected");message.documentDelete=$root.google.firestore.v1.DocumentDelete.fromObject(object.documentDelete,long+1)}if(object.documentRemove!=null){if(typeof object.documentRemove!=="object")throw TypeError(".google.firestore.v1.ListenResponse.documentRemove: object expected");message.documentRemove=$root.google.firestore.v1.DocumentRemove.fromObject(object.documentRemove,long+1)}if(object.filter!=null){if(typeof object.filter!=="object")throw TypeError(".google.firestore.v1.ListenResponse.filter: object expected");message.filter=$root.google.firestore.v1.ExistenceFilter.fromObject(object.filter,long+1)}return message};ListenResponse.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.targetChange!=null&&message.hasOwnProperty("targetChange")){object.targetChange=$root.google.firestore.v1.TargetChange.toObject(message.targetChange,options);if(options.oneofs)object.responseType="targetChange"}if(message.documentChange!=null&&message.hasOwnProperty("documentChange")){object.documentChange=$root.google.firestore.v1.DocumentChange.toObject(message.documentChange,options);if(options.oneofs)object.responseType="documentChange"}if(message.documentDelete!=null&&message.hasOwnProperty("documentDelete")){object.documentDelete=$root.google.firestore.v1.DocumentDelete.toObject(message.documentDelete,options);if(options.oneofs)object.responseType="documentDelete"}if(message.filter!=null&&message.hasOwnProperty("filter")){object.filter=$root.google.firestore.v1.ExistenceFilter.toObject(message.filter,options);if(options.oneofs)object.responseType="filter"}if(message.documentRemove!=null&&message.hasOwnProperty("documentRemove")){object.documentRemove=$root.google.firestore.v1.DocumentRemove.toObject(message.documentRemove,options);if(options.oneofs)object.responseType="documentRemove"}return object};ListenResponse.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ListenResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.ListenResponse"};return ListenResponse}();v1.Target=function(){function Target(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.Target;while(reader.pos>>3){case 2:{message.query=$root.google.firestore.v1.Target.QueryTarget.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.documents=$root.google.firestore.v1.Target.DocumentsTarget.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.resumeToken=reader.bytes();break}case 11:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.targetId=reader.int32();break}case 6:{message.once=reader.bool();break}case 12:{message.expectedCount=$root.google.protobuf.Int32Value.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Target.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Target.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.query!=null&&message.hasOwnProperty("query")){properties.targetType=1;{var error=$root.google.firestore.v1.Target.QueryTarget.verify(message.query,long+1);if(error)return"query."+error}}if(message.documents!=null&&message.hasOwnProperty("documents")){if(properties.targetType===1)return"targetType: multiple values";properties.targetType=1;{var error=$root.google.firestore.v1.Target.DocumentsTarget.verify(message.documents,long+1);if(error)return"documents."+error}}if(message.resumeToken!=null&&message.hasOwnProperty("resumeToken")){properties.resumeType=1;if(!(message.resumeToken&&typeof message.resumeToken.length==="number"||$util.isString(message.resumeToken)))return"resumeToken: buffer expected"}if(message.readTime!=null&&message.hasOwnProperty("readTime")){if(properties.resumeType===1)return"resumeType: multiple values";properties.resumeType=1;{var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}}if(message.targetId!=null&&message.hasOwnProperty("targetId"))if(!$util.isInteger(message.targetId))return"targetId: integer expected";if(message.once!=null&&message.hasOwnProperty("once"))if(typeof message.once!=="boolean")return"once: boolean expected";if(message.expectedCount!=null&&message.hasOwnProperty("expectedCount")){var error=$root.google.protobuf.Int32Value.verify(message.expectedCount,long+1);if(error)return"expectedCount."+error}return null};Target.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.Target)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.Target;if(object.query!=null){if(typeof object.query!=="object")throw TypeError(".google.firestore.v1.Target.query: object expected");message.query=$root.google.firestore.v1.Target.QueryTarget.fromObject(object.query,long+1)}if(object.documents!=null){if(typeof object.documents!=="object")throw TypeError(".google.firestore.v1.Target.documents: object expected");message.documents=$root.google.firestore.v1.Target.DocumentsTarget.fromObject(object.documents,long+1)}if(object.resumeToken!=null)if(typeof object.resumeToken==="string")$util.base64.decode(object.resumeToken,message.resumeToken=$util.newBuffer($util.base64.length(object.resumeToken)),0);else if(object.resumeToken.length>=0)message.resumeToken=object.resumeToken;if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.Target.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}if(object.targetId!=null)message.targetId=object.targetId|0;if(object.once!=null)message.once=Boolean(object.once);if(object.expectedCount!=null){if(typeof object.expectedCount!=="object")throw TypeError(".google.firestore.v1.Target.expectedCount: object expected");message.expectedCount=$root.google.protobuf.Int32Value.fromObject(object.expectedCount,long+1)}return message};Target.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.targetId=0;object.once=false;object.expectedCount=null}if(message.query!=null&&message.hasOwnProperty("query")){object.query=$root.google.firestore.v1.Target.QueryTarget.toObject(message.query,options);if(options.oneofs)object.targetType="query"}if(message.documents!=null&&message.hasOwnProperty("documents")){object.documents=$root.google.firestore.v1.Target.DocumentsTarget.toObject(message.documents,options);if(options.oneofs)object.targetType="documents"}if(message.resumeToken!=null&&message.hasOwnProperty("resumeToken")){object.resumeToken=options.bytes===String?$util.base64.encode(message.resumeToken,0,message.resumeToken.length):options.bytes===Array?Array.prototype.slice.call(message.resumeToken):message.resumeToken;if(options.oneofs)object.resumeType="resumeToken"}if(message.targetId!=null&&message.hasOwnProperty("targetId"))object.targetId=message.targetId;if(message.once!=null&&message.hasOwnProperty("once"))object.once=message.once;if(message.readTime!=null&&message.hasOwnProperty("readTime")){object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(options.oneofs)object.resumeType="readTime"}if(message.expectedCount!=null&&message.hasOwnProperty("expectedCount"))object.expectedCount=$root.google.protobuf.Int32Value.toObject(message.expectedCount,options);return object};Target.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Target.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.Target"};Target.DocumentsTarget=function(){function DocumentsTarget(properties){this.documents=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.Target.DocumentsTarget;while(reader.pos>>3){case 2:{if(!(message.documents&&message.documents.length))message.documents=[];message.documents.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};DocumentsTarget.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DocumentsTarget.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.documents!=null&&message.hasOwnProperty("documents")){if(!Array.isArray(message.documents))return"documents: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.Target.DocumentsTarget;if(object.documents){if(!Array.isArray(object.documents))throw TypeError(".google.firestore.v1.Target.DocumentsTarget.documents: array expected");message.documents=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.Target.QueryTarget;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.structuredQuery=$root.google.firestore.v1.StructuredQuery.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};QueryTarget.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};QueryTarget.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.structuredQuery!=null&&message.hasOwnProperty("structuredQuery")){properties.queryType=1;{var error=$root.google.firestore.v1.StructuredQuery.verify(message.structuredQuery,long+1);if(error)return"structuredQuery."+error}}return null};QueryTarget.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.Target.QueryTarget)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.Target.QueryTarget;if(object.parent!=null)message.parent=String(object.parent);if(object.structuredQuery!=null){if(typeof object.structuredQuery!=="object")throw TypeError(".google.firestore.v1.Target.QueryTarget.structuredQuery: object expected");message.structuredQuery=$root.google.firestore.v1.StructuredQuery.fromObject(object.structuredQuery,long+1)}return message};QueryTarget.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.parent="";if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.structuredQuery!=null&&message.hasOwnProperty("structuredQuery")){object.structuredQuery=$root.google.firestore.v1.StructuredQuery.toObject(message.structuredQuery,options);if(options.oneofs)object.queryType="structuredQuery"}return object};QueryTarget.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};QueryTarget.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.Target.QueryTarget"};return QueryTarget}();return Target}();v1.TargetChange=function(){function TargetChange(properties){this.targetIds=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.TargetChange;while(reader.pos>>3){case 1:{message.targetChangeType=reader.int32();break}case 2:{if(!(message.targetIds&&message.targetIds.length))message.targetIds=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos$util.recursionLimit)return"maximum nesting depth exceeded";if(message.targetChangeType!=null&&message.hasOwnProperty("targetChangeType"))switch(message.targetChangeType){default:return"targetChangeType: enum value expected";case 0:case 1:case 2:case 3:case 4:break}if(message.targetIds!=null&&message.hasOwnProperty("targetIds")){if(!Array.isArray(message.targetIds))return"targetIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.TargetChange;switch(object.targetChangeType){default:if(typeof object.targetChangeType==="number"){message.targetChangeType=object.targetChangeType;break}break;case"NO_CHANGE":case 0:message.targetChangeType=0;break;case"ADD":case 1:message.targetChangeType=1;break;case"REMOVE":case 2:message.targetChangeType=2;break;case"CURRENT":case 3:message.targetChangeType=3;break;case"RESET":case 4:message.targetChangeType=4;break}if(object.targetIds){if(!Array.isArray(object.targetIds))throw TypeError(".google.firestore.v1.TargetChange.targetIds: array expected");message.targetIds=[];for(var i=0;i=0)message.resumeToken=object.resumeToken;if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.TargetChange.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}return message};TargetChange.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.targetIds=[];if(options.defaults){object.targetChangeType=options.enums===String?"NO_CHANGE":0;object.cause=null;if(options.bytes===String)object.resumeToken="";else{object.resumeToken=[];if(options.bytes!==Array)object.resumeToken=$util.newBuffer(object.resumeToken)}object.readTime=null}if(message.targetChangeType!=null&&message.hasOwnProperty("targetChangeType"))object.targetChangeType=options.enums===String?$root.google.firestore.v1.TargetChange.TargetChangeType[message.targetChangeType]===undefined?message.targetChangeType:$root.google.firestore.v1.TargetChange.TargetChangeType[message.targetChangeType]:message.targetChangeType;if(message.targetIds&&message.targetIds.length){object.targetIds=[];for(var j=0;j$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ListCollectionIdsRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.pageSize=reader.int32();break}case 3:{message.pageToken=reader.string();break}case 4:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ListCollectionIdsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListCollectionIdsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))if(!$util.isInteger(message.pageSize))return"pageSize: integer expected";if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))if(!$util.isString(message.pageToken))return"pageToken: string expected";if(message.readTime!=null&&message.hasOwnProperty("readTime")){properties.consistencySelector=1;{var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}}return null};ListCollectionIdsRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.ListCollectionIdsRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ListCollectionIdsRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.pageSize!=null)message.pageSize=object.pageSize|0;if(object.pageToken!=null)message.pageToken=String(object.pageToken);if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.ListCollectionIdsRequest.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}return message};ListCollectionIdsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.pageSize=0;object.pageToken=""}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))object.pageSize=message.pageSize;if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))object.pageToken=message.pageToken;if(message.readTime!=null&&message.hasOwnProperty("readTime")){object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(options.oneofs)object.consistencySelector="readTime"}return object};ListCollectionIdsRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ListCollectionIdsRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.ListCollectionIdsRequest"};return ListCollectionIdsRequest}();v1.ListCollectionIdsResponse=function(){function ListCollectionIdsResponse(properties){this.collectionIds=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ListCollectionIdsResponse;while(reader.pos>>3){case 1:{if(!(message.collectionIds&&message.collectionIds.length))message.collectionIds=[];message.collectionIds.push(reader.string());break}case 2:{message.nextPageToken=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ListCollectionIdsResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListCollectionIdsResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.collectionIds!=null&&message.hasOwnProperty("collectionIds")){if(!Array.isArray(message.collectionIds))return"collectionIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ListCollectionIdsResponse;if(object.collectionIds){if(!Array.isArray(object.collectionIds))throw TypeError(".google.firestore.v1.ListCollectionIdsResponse.collectionIds: array expected");message.collectionIds=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.BatchWriteRequest,key,value;while(reader.pos>>3){case 1:{message.database=reader.string();break}case 2:{if(!(message.writes&&message.writes.length))message.writes=[];message.writes.push($root.google.firestore.v1.Write.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{if(message.labels===$util.emptyObject)message.labels={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.labels,key);message.labels[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};BatchWriteRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BatchWriteRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.writes!=null&&message.hasOwnProperty("writes")){if(!Array.isArray(message.writes))return"writes: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.BatchWriteRequest;if(object.database!=null)message.database=String(object.database);if(object.writes){if(!Array.isArray(object.writes))throw TypeError(".google.firestore.v1.BatchWriteRequest.writes: array expected");message.writes=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.BatchWriteResponse;while(reader.pos>>3){case 1:{if(!(message.writeResults&&message.writeResults.length))message.writeResults=[];message.writeResults.push($root.google.firestore.v1.WriteResult.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{if(!(message.status&&message.status.length))message.status=[];message.status.push($root.google.rpc.Status.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};BatchWriteResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BatchWriteResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.writeResults!=null&&message.hasOwnProperty("writeResults")){if(!Array.isArray(message.writeResults))return"writeResults: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.BatchWriteResponse;if(object.writeResults){if(!Array.isArray(object.writeResults))throw TypeError(".google.firestore.v1.BatchWriteResponse.writeResults: array expected");message.writeResults=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredPipeline,key,value;while(reader.pos>>3){case 1:{message.pipeline=$root.google.firestore.v1.Pipeline.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{if(message.options===$util.emptyObject)message.options={};var end2=reader.uint32()+reader.pos;key="";value=null;while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=$root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1);break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.options,key);message.options[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};StructuredPipeline.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};StructuredPipeline.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.pipeline!=null&&message.hasOwnProperty("pipeline")){var error=$root.google.firestore.v1.Pipeline.verify(message.pipeline,long+1);if(error)return"pipeline."+error}if(message.options!=null&&message.hasOwnProperty("options")){if(!$util.isObject(message.options))return"options: object expected";var key=Object.keys(message.options);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredPipeline;if(object.pipeline!=null){if(typeof object.pipeline!=="object")throw TypeError(".google.firestore.v1.StructuredPipeline.pipeline: object expected");message.pipeline=$root.google.firestore.v1.Pipeline.fromObject(object.pipeline,long+1)}if(object.options){if(typeof object.options!=="object")throw TypeError(".google.firestore.v1.StructuredPipeline.options: object expected");message.options={};for(var keys=Object.keys(object.options),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredQuery;while(reader.pos>>3){case 1:{message.select=$root.google.firestore.v1.StructuredQuery.Projection.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{if(!(message.from&&message.from.length))message.from=[];message.from.push($root.google.firestore.v1.StructuredQuery.CollectionSelector.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{message.where=$root.google.firestore.v1.StructuredQuery.Filter.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{if(!(message.orderBy&&message.orderBy.length))message.orderBy=[];message.orderBy.push($root.google.firestore.v1.StructuredQuery.Order.decode(reader,reader.uint32(),undefined,long+1));break}case 7:{message.startAt=$root.google.firestore.v1.Cursor.decode(reader,reader.uint32(),undefined,long+1);break}case 8:{message.endAt=$root.google.firestore.v1.Cursor.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.offset=reader.int32();break}case 5:{message.limit=$root.google.protobuf.Int32Value.decode(reader,reader.uint32(),undefined,long+1);break}case 9:{message.findNearest=$root.google.firestore.v1.StructuredQuery.FindNearest.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};StructuredQuery.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};StructuredQuery.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.select!=null&&message.hasOwnProperty("select")){var error=$root.google.firestore.v1.StructuredQuery.Projection.verify(message.select,long+1);if(error)return"select."+error}if(message.from!=null&&message.hasOwnProperty("from")){if(!Array.isArray(message.from))return"from: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredQuery;if(object.select!=null){if(typeof object.select!=="object")throw TypeError(".google.firestore.v1.StructuredQuery.select: object expected");message.select=$root.google.firestore.v1.StructuredQuery.Projection.fromObject(object.select,long+1)}if(object.from){if(!Array.isArray(object.from))throw TypeError(".google.firestore.v1.StructuredQuery.from: array expected");message.from=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredQuery.CollectionSelector;while(reader.pos>>3){case 2:{message.collectionId=reader.string();break}case 3:{message.allDescendants=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};CollectionSelector.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CollectionSelector.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.collectionId!=null&&message.hasOwnProperty("collectionId"))if(!$util.isString(message.collectionId))return"collectionId: string expected";if(message.allDescendants!=null&&message.hasOwnProperty("allDescendants"))if(typeof message.allDescendants!=="boolean")return"allDescendants: boolean expected";return null};CollectionSelector.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.StructuredQuery.CollectionSelector)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredQuery.CollectionSelector;if(object.collectionId!=null)message.collectionId=String(object.collectionId);if(object.allDescendants!=null)message.allDescendants=Boolean(object.allDescendants);return message};CollectionSelector.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.collectionId="";object.allDescendants=false}if(message.collectionId!=null&&message.hasOwnProperty("collectionId"))object.collectionId=message.collectionId;if(message.allDescendants!=null&&message.hasOwnProperty("allDescendants"))object.allDescendants=message.allDescendants;return object};CollectionSelector.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CollectionSelector.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.StructuredQuery.CollectionSelector"};return CollectionSelector}();StructuredQuery.Filter=function(){function Filter(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredQuery.Filter;while(reader.pos>>3){case 1:{message.compositeFilter=$root.google.firestore.v1.StructuredQuery.CompositeFilter.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.fieldFilter=$root.google.firestore.v1.StructuredQuery.FieldFilter.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.unaryFilter=$root.google.firestore.v1.StructuredQuery.UnaryFilter.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Filter.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Filter.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.compositeFilter!=null&&message.hasOwnProperty("compositeFilter")){properties.filterType=1;{var error=$root.google.firestore.v1.StructuredQuery.CompositeFilter.verify(message.compositeFilter,long+1);if(error)return"compositeFilter."+error}}if(message.fieldFilter!=null&&message.hasOwnProperty("fieldFilter")){if(properties.filterType===1)return"filterType: multiple values";properties.filterType=1;{var error=$root.google.firestore.v1.StructuredQuery.FieldFilter.verify(message.fieldFilter,long+1);if(error)return"fieldFilter."+error}}if(message.unaryFilter!=null&&message.hasOwnProperty("unaryFilter")){if(properties.filterType===1)return"filterType: multiple values";properties.filterType=1;{var error=$root.google.firestore.v1.StructuredQuery.UnaryFilter.verify(message.unaryFilter,long+1);if(error)return"unaryFilter."+error}}return null};Filter.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.StructuredQuery.Filter)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredQuery.Filter;if(object.compositeFilter!=null){if(typeof object.compositeFilter!=="object")throw TypeError(".google.firestore.v1.StructuredQuery.Filter.compositeFilter: object expected");message.compositeFilter=$root.google.firestore.v1.StructuredQuery.CompositeFilter.fromObject(object.compositeFilter,long+1)}if(object.fieldFilter!=null){if(typeof object.fieldFilter!=="object")throw TypeError(".google.firestore.v1.StructuredQuery.Filter.fieldFilter: object expected");message.fieldFilter=$root.google.firestore.v1.StructuredQuery.FieldFilter.fromObject(object.fieldFilter,long+1)}if(object.unaryFilter!=null){if(typeof object.unaryFilter!=="object")throw TypeError(".google.firestore.v1.StructuredQuery.Filter.unaryFilter: object expected");message.unaryFilter=$root.google.firestore.v1.StructuredQuery.UnaryFilter.fromObject(object.unaryFilter,long+1)}return message};Filter.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.compositeFilter!=null&&message.hasOwnProperty("compositeFilter")){object.compositeFilter=$root.google.firestore.v1.StructuredQuery.CompositeFilter.toObject(message.compositeFilter,options);if(options.oneofs)object.filterType="compositeFilter"}if(message.fieldFilter!=null&&message.hasOwnProperty("fieldFilter")){object.fieldFilter=$root.google.firestore.v1.StructuredQuery.FieldFilter.toObject(message.fieldFilter,options);if(options.oneofs)object.filterType="fieldFilter"}if(message.unaryFilter!=null&&message.hasOwnProperty("unaryFilter")){object.unaryFilter=$root.google.firestore.v1.StructuredQuery.UnaryFilter.toObject(message.unaryFilter,options);if(options.oneofs)object.filterType="unaryFilter"}return object};Filter.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Filter.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.StructuredQuery.Filter"};return Filter}();StructuredQuery.CompositeFilter=function(){function CompositeFilter(properties){this.filters=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredQuery.CompositeFilter;while(reader.pos>>3){case 1:{message.op=reader.int32();break}case 2:{if(!(message.filters&&message.filters.length))message.filters=[];message.filters.push($root.google.firestore.v1.StructuredQuery.Filter.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};CompositeFilter.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CompositeFilter.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.op!=null&&message.hasOwnProperty("op"))switch(message.op){default:return"op: enum value expected";case 0:case 1:case 2:break}if(message.filters!=null&&message.hasOwnProperty("filters")){if(!Array.isArray(message.filters))return"filters: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredQuery.CompositeFilter;switch(object.op){default:if(typeof object.op==="number"){message.op=object.op;break}break;case"OPERATOR_UNSPECIFIED":case 0:message.op=0;break;case"AND":case 1:message.op=1;break;case"OR":case 2:message.op=2;break}if(object.filters){if(!Array.isArray(object.filters))throw TypeError(".google.firestore.v1.StructuredQuery.CompositeFilter.filters: array expected");message.filters=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredQuery.FieldFilter;while(reader.pos>>3){case 1:{message.field=$root.google.firestore.v1.StructuredQuery.FieldReference.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.op=reader.int32();break}case 3:{message.value=$root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};FieldFilter.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FieldFilter.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.field!=null&&message.hasOwnProperty("field")){var error=$root.google.firestore.v1.StructuredQuery.FieldReference.verify(message.field,long+1);if(error)return"field."+error}if(message.op!=null&&message.hasOwnProperty("op"))switch(message.op){default:return"op: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:break}if(message.value!=null&&message.hasOwnProperty("value")){var error=$root.google.firestore.v1.Value.verify(message.value,long+1);if(error)return"value."+error}return null};FieldFilter.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.StructuredQuery.FieldFilter)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredQuery.FieldFilter;if(object.field!=null){if(typeof object.field!=="object")throw TypeError(".google.firestore.v1.StructuredQuery.FieldFilter.field: object expected");message.field=$root.google.firestore.v1.StructuredQuery.FieldReference.fromObject(object.field,long+1)}switch(object.op){default:if(typeof object.op==="number"){message.op=object.op;break}break;case"OPERATOR_UNSPECIFIED":case 0:message.op=0;break;case"LESS_THAN":case 1:message.op=1;break;case"LESS_THAN_OR_EQUAL":case 2:message.op=2;break;case"GREATER_THAN":case 3:message.op=3;break;case"GREATER_THAN_OR_EQUAL":case 4:message.op=4;break;case"EQUAL":case 5:message.op=5;break;case"NOT_EQUAL":case 6:message.op=6;break;case"ARRAY_CONTAINS":case 7:message.op=7;break;case"IN":case 8:message.op=8;break;case"ARRAY_CONTAINS_ANY":case 9:message.op=9;break;case"NOT_IN":case 10:message.op=10;break}if(object.value!=null){if(typeof object.value!=="object")throw TypeError(".google.firestore.v1.StructuredQuery.FieldFilter.value: object expected");message.value=$root.google.firestore.v1.Value.fromObject(object.value,long+1)}return message};FieldFilter.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.field=null;object.op=options.enums===String?"OPERATOR_UNSPECIFIED":0;object.value=null}if(message.field!=null&&message.hasOwnProperty("field"))object.field=$root.google.firestore.v1.StructuredQuery.FieldReference.toObject(message.field,options);if(message.op!=null&&message.hasOwnProperty("op"))object.op=options.enums===String?$root.google.firestore.v1.StructuredQuery.FieldFilter.Operator[message.op]===undefined?message.op:$root.google.firestore.v1.StructuredQuery.FieldFilter.Operator[message.op]:message.op;if(message.value!=null&&message.hasOwnProperty("value"))object.value=$root.google.firestore.v1.Value.toObject(message.value,options);return object};FieldFilter.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FieldFilter.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.StructuredQuery.FieldFilter"};FieldFilter.Operator=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="OPERATOR_UNSPECIFIED"]=0;values[valuesById[1]="LESS_THAN"]=1;values[valuesById[2]="LESS_THAN_OR_EQUAL"]=2;values[valuesById[3]="GREATER_THAN"]=3;values[valuesById[4]="GREATER_THAN_OR_EQUAL"]=4;values[valuesById[5]="EQUAL"]=5;values[valuesById[6]="NOT_EQUAL"]=6;values[valuesById[7]="ARRAY_CONTAINS"]=7;values[valuesById[8]="IN"]=8;values[valuesById[9]="ARRAY_CONTAINS_ANY"]=9;values[valuesById[10]="NOT_IN"]=10;return values}();return FieldFilter}();StructuredQuery.UnaryFilter=function(){function UnaryFilter(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredQuery.UnaryFilter;while(reader.pos>>3){case 1:{message.op=reader.int32();break}case 2:{message.field=$root.google.firestore.v1.StructuredQuery.FieldReference.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};UnaryFilter.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UnaryFilter.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.op!=null&&message.hasOwnProperty("op"))switch(message.op){default:return"op: enum value expected";case 0:case 2:case 3:case 4:case 5:break}if(message.field!=null&&message.hasOwnProperty("field")){properties.operandType=1;{var error=$root.google.firestore.v1.StructuredQuery.FieldReference.verify(message.field,long+1);if(error)return"field."+error}}return null};UnaryFilter.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.StructuredQuery.UnaryFilter)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredQuery.UnaryFilter;switch(object.op){default:if(typeof object.op==="number"){message.op=object.op;break}break;case"OPERATOR_UNSPECIFIED":case 0:message.op=0;break;case"IS_NAN":case 2:message.op=2;break;case"IS_NULL":case 3:message.op=3;break;case"IS_NOT_NAN":case 4:message.op=4;break;case"IS_NOT_NULL":case 5:message.op=5;break}if(object.field!=null){if(typeof object.field!=="object")throw TypeError(".google.firestore.v1.StructuredQuery.UnaryFilter.field: object expected");message.field=$root.google.firestore.v1.StructuredQuery.FieldReference.fromObject(object.field,long+1)}return message};UnaryFilter.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.op=options.enums===String?"OPERATOR_UNSPECIFIED":0;if(message.op!=null&&message.hasOwnProperty("op"))object.op=options.enums===String?$root.google.firestore.v1.StructuredQuery.UnaryFilter.Operator[message.op]===undefined?message.op:$root.google.firestore.v1.StructuredQuery.UnaryFilter.Operator[message.op]:message.op;if(message.field!=null&&message.hasOwnProperty("field")){object.field=$root.google.firestore.v1.StructuredQuery.FieldReference.toObject(message.field,options);if(options.oneofs)object.operandType="field"}return object};UnaryFilter.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UnaryFilter.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.StructuredQuery.UnaryFilter"};UnaryFilter.Operator=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="OPERATOR_UNSPECIFIED"]=0;values[valuesById[2]="IS_NAN"]=2;values[valuesById[3]="IS_NULL"]=3;values[valuesById[4]="IS_NOT_NAN"]=4;values[valuesById[5]="IS_NOT_NULL"]=5;return values}();return UnaryFilter}();StructuredQuery.Order=function(){function Order(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredQuery.Order;while(reader.pos>>3){case 1:{message.field=$root.google.firestore.v1.StructuredQuery.FieldReference.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.direction=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};Order.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Order.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.field!=null&&message.hasOwnProperty("field")){var error=$root.google.firestore.v1.StructuredQuery.FieldReference.verify(message.field,long+1);if(error)return"field."+error}if(message.direction!=null&&message.hasOwnProperty("direction"))switch(message.direction){default:return"direction: enum value expected";case 0:case 1:case 2:break}return null};Order.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.StructuredQuery.Order)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredQuery.Order;if(object.field!=null){if(typeof object.field!=="object")throw TypeError(".google.firestore.v1.StructuredQuery.Order.field: object expected");message.field=$root.google.firestore.v1.StructuredQuery.FieldReference.fromObject(object.field,long+1)}switch(object.direction){default:if(typeof object.direction==="number"){message.direction=object.direction;break}break;case"DIRECTION_UNSPECIFIED":case 0:message.direction=0;break;case"ASCENDING":case 1:message.direction=1;break;case"DESCENDING":case 2:message.direction=2;break}return message};Order.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.field=null;object.direction=options.enums===String?"DIRECTION_UNSPECIFIED":0}if(message.field!=null&&message.hasOwnProperty("field"))object.field=$root.google.firestore.v1.StructuredQuery.FieldReference.toObject(message.field,options);if(message.direction!=null&&message.hasOwnProperty("direction"))object.direction=options.enums===String?$root.google.firestore.v1.StructuredQuery.Direction[message.direction]===undefined?message.direction:$root.google.firestore.v1.StructuredQuery.Direction[message.direction]:message.direction;return object};Order.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Order.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.StructuredQuery.Order"};return Order}();StructuredQuery.Direction=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="DIRECTION_UNSPECIFIED"]=0;values[valuesById[1]="ASCENDING"]=1;values[valuesById[2]="DESCENDING"]=2;return values}();StructuredQuery.FieldReference=function(){function FieldReference(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredQuery.FieldReference;while(reader.pos>>3){case 2:{message.fieldPath=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};FieldReference.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FieldReference.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.fieldPath!=null&&message.hasOwnProperty("fieldPath"))if(!$util.isString(message.fieldPath))return"fieldPath: string expected";return null};FieldReference.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.StructuredQuery.FieldReference)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredQuery.FieldReference;if(object.fieldPath!=null)message.fieldPath=String(object.fieldPath);return message};FieldReference.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.fieldPath="";if(message.fieldPath!=null&&message.hasOwnProperty("fieldPath"))object.fieldPath=message.fieldPath;return object};FieldReference.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FieldReference.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.StructuredQuery.FieldReference"};return FieldReference}();StructuredQuery.Projection=function(){function Projection(properties){this.fields=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredQuery.Projection;while(reader.pos>>3){case 2:{if(!(message.fields&&message.fields.length))message.fields=[];message.fields.push($root.google.firestore.v1.StructuredQuery.FieldReference.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};Projection.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Projection.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.fields!=null&&message.hasOwnProperty("fields")){if(!Array.isArray(message.fields))return"fields: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredQuery.Projection;if(object.fields){if(!Array.isArray(object.fields))throw TypeError(".google.firestore.v1.StructuredQuery.Projection.fields: array expected");message.fields=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredQuery.FindNearest;while(reader.pos>>3){case 1:{message.vectorField=$root.google.firestore.v1.StructuredQuery.FieldReference.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.queryVector=$root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.distanceMeasure=reader.int32();break}case 4:{message.limit=$root.google.protobuf.Int32Value.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.distanceResultField=reader.string();break}case 6:{message.distanceThreshold=$root.google.protobuf.DoubleValue.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};FindNearest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FindNearest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.vectorField!=null&&message.hasOwnProperty("vectorField")){var error=$root.google.firestore.v1.StructuredQuery.FieldReference.verify(message.vectorField,long+1);if(error)return"vectorField."+error}if(message.queryVector!=null&&message.hasOwnProperty("queryVector")){var error=$root.google.firestore.v1.Value.verify(message.queryVector,long+1);if(error)return"queryVector."+error}if(message.distanceMeasure!=null&&message.hasOwnProperty("distanceMeasure"))switch(message.distanceMeasure){default:return"distanceMeasure: enum value expected";case 0:case 1:case 2:case 3:break}if(message.limit!=null&&message.hasOwnProperty("limit")){var error=$root.google.protobuf.Int32Value.verify(message.limit,long+1);if(error)return"limit."+error}if(message.distanceResultField!=null&&message.hasOwnProperty("distanceResultField"))if(!$util.isString(message.distanceResultField))return"distanceResultField: string expected";if(message.distanceThreshold!=null&&message.hasOwnProperty("distanceThreshold")){var error=$root.google.protobuf.DoubleValue.verify(message.distanceThreshold,long+1);if(error)return"distanceThreshold."+error}return null};FindNearest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.StructuredQuery.FindNearest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredQuery.FindNearest;if(object.vectorField!=null){if(typeof object.vectorField!=="object")throw TypeError(".google.firestore.v1.StructuredQuery.FindNearest.vectorField: object expected");message.vectorField=$root.google.firestore.v1.StructuredQuery.FieldReference.fromObject(object.vectorField,long+1)}if(object.queryVector!=null){if(typeof object.queryVector!=="object")throw TypeError(".google.firestore.v1.StructuredQuery.FindNearest.queryVector: object expected");message.queryVector=$root.google.firestore.v1.Value.fromObject(object.queryVector,long+1)}switch(object.distanceMeasure){default:if(typeof object.distanceMeasure==="number"){message.distanceMeasure=object.distanceMeasure;break}break;case"DISTANCE_MEASURE_UNSPECIFIED":case 0:message.distanceMeasure=0;break;case"EUCLIDEAN":case 1:message.distanceMeasure=1;break;case"COSINE":case 2:message.distanceMeasure=2;break;case"DOT_PRODUCT":case 3:message.distanceMeasure=3;break}if(object.limit!=null){if(typeof object.limit!=="object")throw TypeError(".google.firestore.v1.StructuredQuery.FindNearest.limit: object expected");message.limit=$root.google.protobuf.Int32Value.fromObject(object.limit,long+1)}if(object.distanceResultField!=null)message.distanceResultField=String(object.distanceResultField);if(object.distanceThreshold!=null){if(typeof object.distanceThreshold!=="object")throw TypeError(".google.firestore.v1.StructuredQuery.FindNearest.distanceThreshold: object expected");message.distanceThreshold=$root.google.protobuf.DoubleValue.fromObject(object.distanceThreshold,long+1)}return message};FindNearest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.vectorField=null;object.queryVector=null;object.distanceMeasure=options.enums===String?"DISTANCE_MEASURE_UNSPECIFIED":0;object.limit=null;object.distanceResultField="";object.distanceThreshold=null}if(message.vectorField!=null&&message.hasOwnProperty("vectorField"))object.vectorField=$root.google.firestore.v1.StructuredQuery.FieldReference.toObject(message.vectorField,options);if(message.queryVector!=null&&message.hasOwnProperty("queryVector"))object.queryVector=$root.google.firestore.v1.Value.toObject(message.queryVector,options);if(message.distanceMeasure!=null&&message.hasOwnProperty("distanceMeasure"))object.distanceMeasure=options.enums===String?$root.google.firestore.v1.StructuredQuery.FindNearest.DistanceMeasure[message.distanceMeasure]===undefined?message.distanceMeasure:$root.google.firestore.v1.StructuredQuery.FindNearest.DistanceMeasure[message.distanceMeasure]:message.distanceMeasure;if(message.limit!=null&&message.hasOwnProperty("limit"))object.limit=$root.google.protobuf.Int32Value.toObject(message.limit,options);if(message.distanceResultField!=null&&message.hasOwnProperty("distanceResultField"))object.distanceResultField=message.distanceResultField;if(message.distanceThreshold!=null&&message.hasOwnProperty("distanceThreshold"))object.distanceThreshold=$root.google.protobuf.DoubleValue.toObject(message.distanceThreshold,options);return object};FindNearest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FindNearest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.StructuredQuery.FindNearest"};FindNearest.DistanceMeasure=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="DISTANCE_MEASURE_UNSPECIFIED"]=0;values[valuesById[1]="EUCLIDEAN"]=1;values[valuesById[2]="COSINE"]=2;values[valuesById[3]="DOT_PRODUCT"]=3;return values}();return FindNearest}();return StructuredQuery}();v1.StructuredAggregationQuery=function(){function StructuredAggregationQuery(properties){this.aggregations=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredAggregationQuery;while(reader.pos>>3){case 1:{message.structuredQuery=$root.google.firestore.v1.StructuredQuery.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{if(!(message.aggregations&&message.aggregations.length))message.aggregations=[];message.aggregations.push($root.google.firestore.v1.StructuredAggregationQuery.Aggregation.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};StructuredAggregationQuery.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};StructuredAggregationQuery.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.structuredQuery!=null&&message.hasOwnProperty("structuredQuery")){properties.queryType=1;{var error=$root.google.firestore.v1.StructuredQuery.verify(message.structuredQuery,long+1);if(error)return"structuredQuery."+error}}if(message.aggregations!=null&&message.hasOwnProperty("aggregations")){if(!Array.isArray(message.aggregations))return"aggregations: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredAggregationQuery;if(object.structuredQuery!=null){if(typeof object.structuredQuery!=="object")throw TypeError(".google.firestore.v1.StructuredAggregationQuery.structuredQuery: object expected");message.structuredQuery=$root.google.firestore.v1.StructuredQuery.fromObject(object.structuredQuery,long+1)}if(object.aggregations){if(!Array.isArray(object.aggregations))throw TypeError(".google.firestore.v1.StructuredAggregationQuery.aggregations: array expected");message.aggregations=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredAggregationQuery.Aggregation;while(reader.pos>>3){case 1:{message.count=$root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Count.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.sum=$root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Sum.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.avg=$root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Avg.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.alias=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};Aggregation.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Aggregation.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.count!=null&&message.hasOwnProperty("count")){properties.operator=1;{var error=$root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Count.verify(message.count,long+1);if(error)return"count."+error}}if(message.sum!=null&&message.hasOwnProperty("sum")){if(properties.operator===1)return"operator: multiple values";properties.operator=1;{var error=$root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Sum.verify(message.sum,long+1);if(error)return"sum."+error}}if(message.avg!=null&&message.hasOwnProperty("avg")){if(properties.operator===1)return"operator: multiple values";properties.operator=1;{var error=$root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Avg.verify(message.avg,long+1);if(error)return"avg."+error}}if(message.alias!=null&&message.hasOwnProperty("alias"))if(!$util.isString(message.alias))return"alias: string expected";return null};Aggregation.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.StructuredAggregationQuery.Aggregation)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredAggregationQuery.Aggregation;if(object.count!=null){if(typeof object.count!=="object")throw TypeError(".google.firestore.v1.StructuredAggregationQuery.Aggregation.count: object expected");message.count=$root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Count.fromObject(object.count,long+1)}if(object.sum!=null){if(typeof object.sum!=="object")throw TypeError(".google.firestore.v1.StructuredAggregationQuery.Aggregation.sum: object expected");message.sum=$root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Sum.fromObject(object.sum,long+1)}if(object.avg!=null){if(typeof object.avg!=="object")throw TypeError(".google.firestore.v1.StructuredAggregationQuery.Aggregation.avg: object expected");message.avg=$root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Avg.fromObject(object.avg,long+1)}if(object.alias!=null)message.alias=String(object.alias);return message};Aggregation.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.alias="";if(message.count!=null&&message.hasOwnProperty("count")){object.count=$root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Count.toObject(message.count,options);if(options.oneofs)object.operator="count"}if(message.sum!=null&&message.hasOwnProperty("sum")){object.sum=$root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Sum.toObject(message.sum,options);if(options.oneofs)object.operator="sum"}if(message.avg!=null&&message.hasOwnProperty("avg")){object.avg=$root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Avg.toObject(message.avg,options);if(options.oneofs)object.operator="avg"}if(message.alias!=null&&message.hasOwnProperty("alias"))object.alias=message.alias;return object};Aggregation.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Aggregation.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.StructuredAggregationQuery.Aggregation"};Aggregation.Count=function(){function Count(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Count;while(reader.pos>>3){case 1:{message.upTo=$root.google.protobuf.Int64Value.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Count.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Count.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.upTo!=null&&message.hasOwnProperty("upTo")){var error=$root.google.protobuf.Int64Value.verify(message.upTo,long+1);if(error)return"upTo."+error}return null};Count.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Count)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Count;if(object.upTo!=null){if(typeof object.upTo!=="object")throw TypeError(".google.firestore.v1.StructuredAggregationQuery.Aggregation.Count.upTo: object expected");message.upTo=$root.google.protobuf.Int64Value.fromObject(object.upTo,long+1)}return message};Count.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.upTo=null;if(message.upTo!=null&&message.hasOwnProperty("upTo"))object.upTo=$root.google.protobuf.Int64Value.toObject(message.upTo,options);return object};Count.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Count.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.StructuredAggregationQuery.Aggregation.Count"};return Count}();Aggregation.Sum=function(){function Sum(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Sum;while(reader.pos>>3){case 1:{message.field=$root.google.firestore.v1.StructuredQuery.FieldReference.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Sum.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Sum.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.field!=null&&message.hasOwnProperty("field")){var error=$root.google.firestore.v1.StructuredQuery.FieldReference.verify(message.field,long+1);if(error)return"field."+error}return null};Sum.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Sum)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Sum;if(object.field!=null){if(typeof object.field!=="object")throw TypeError(".google.firestore.v1.StructuredAggregationQuery.Aggregation.Sum.field: object expected");message.field=$root.google.firestore.v1.StructuredQuery.FieldReference.fromObject(object.field,long+1)}return message};Sum.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.field=null;if(message.field!=null&&message.hasOwnProperty("field"))object.field=$root.google.firestore.v1.StructuredQuery.FieldReference.toObject(message.field,options);return object};Sum.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Sum.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.StructuredAggregationQuery.Aggregation.Sum"};return Sum}();Aggregation.Avg=function(){function Avg(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Avg;while(reader.pos>>3){case 1:{message.field=$root.google.firestore.v1.StructuredQuery.FieldReference.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Avg.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Avg.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.field!=null&&message.hasOwnProperty("field")){var error=$root.google.firestore.v1.StructuredQuery.FieldReference.verify(message.field,long+1);if(error)return"field."+error}return null};Avg.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Avg)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Avg;if(object.field!=null){if(typeof object.field!=="object")throw TypeError(".google.firestore.v1.StructuredAggregationQuery.Aggregation.Avg.field: object expected");message.field=$root.google.firestore.v1.StructuredQuery.FieldReference.fromObject(object.field,long+1)}return message};Avg.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.field=null;if(message.field!=null&&message.hasOwnProperty("field"))object.field=$root.google.firestore.v1.StructuredQuery.FieldReference.toObject(message.field,options);return object};Avg.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Avg.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.StructuredAggregationQuery.Aggregation.Avg"};return Avg}();return Aggregation}();return StructuredAggregationQuery}();v1.Cursor=function(){function Cursor(properties){this.values=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.Cursor;while(reader.pos>>3){case 1:{if(!(message.values&&message.values.length))message.values=[];message.values.push($root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.before=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};Cursor.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Cursor.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.values!=null&&message.hasOwnProperty("values")){if(!Array.isArray(message.values))return"values: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.Cursor;if(object.values){if(!Array.isArray(object.values))throw TypeError(".google.firestore.v1.Cursor.values: array expected");message.values=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ExplainOptions;while(reader.pos>>3){case 1:{message.analyze=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};ExplainOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExplainOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.analyze!=null&&message.hasOwnProperty("analyze"))if(typeof message.analyze!=="boolean")return"analyze: boolean expected";return null};ExplainOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.ExplainOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ExplainOptions;if(object.analyze!=null)message.analyze=Boolean(object.analyze);return message};ExplainOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.analyze=false;if(message.analyze!=null&&message.hasOwnProperty("analyze"))object.analyze=message.analyze;return object};ExplainOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ExplainOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.ExplainOptions"};return ExplainOptions}();v1.ExplainMetrics=function(){function ExplainMetrics(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ExplainMetrics;while(reader.pos>>3){case 1:{message.planSummary=$root.google.firestore.v1.PlanSummary.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.executionStats=$root.google.firestore.v1.ExecutionStats.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ExplainMetrics.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExplainMetrics.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.planSummary!=null&&message.hasOwnProperty("planSummary")){var error=$root.google.firestore.v1.PlanSummary.verify(message.planSummary,long+1);if(error)return"planSummary."+error}if(message.executionStats!=null&&message.hasOwnProperty("executionStats")){var error=$root.google.firestore.v1.ExecutionStats.verify(message.executionStats,long+1);if(error)return"executionStats."+error}return null};ExplainMetrics.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.ExplainMetrics)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ExplainMetrics;if(object.planSummary!=null){if(typeof object.planSummary!=="object")throw TypeError(".google.firestore.v1.ExplainMetrics.planSummary: object expected");message.planSummary=$root.google.firestore.v1.PlanSummary.fromObject(object.planSummary,long+1)}if(object.executionStats!=null){if(typeof object.executionStats!=="object")throw TypeError(".google.firestore.v1.ExplainMetrics.executionStats: object expected");message.executionStats=$root.google.firestore.v1.ExecutionStats.fromObject(object.executionStats,long+1)}return message};ExplainMetrics.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.planSummary=null;object.executionStats=null}if(message.planSummary!=null&&message.hasOwnProperty("planSummary"))object.planSummary=$root.google.firestore.v1.PlanSummary.toObject(message.planSummary,options);if(message.executionStats!=null&&message.hasOwnProperty("executionStats"))object.executionStats=$root.google.firestore.v1.ExecutionStats.toObject(message.executionStats,options);return object};ExplainMetrics.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ExplainMetrics.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.ExplainMetrics"};return ExplainMetrics}();v1.PlanSummary=function(){function PlanSummary(properties){this.indexesUsed=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.PlanSummary;while(reader.pos>>3){case 1:{if(!(message.indexesUsed&&message.indexesUsed.length))message.indexesUsed=[];message.indexesUsed.push($root.google.protobuf.Struct.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};PlanSummary.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};PlanSummary.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.indexesUsed!=null&&message.hasOwnProperty("indexesUsed")){if(!Array.isArray(message.indexesUsed))return"indexesUsed: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.PlanSummary;if(object.indexesUsed){if(!Array.isArray(object.indexesUsed))throw TypeError(".google.firestore.v1.PlanSummary.indexesUsed: array expected");message.indexesUsed=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ExecutionStats;while(reader.pos>>3){case 1:{message.resultsReturned=reader.int64();break}case 3:{message.executionDuration=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.readOperations=reader.int64();break}case 5:{message.debugStats=$root.google.protobuf.Struct.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ExecutionStats.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExecutionStats.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.resultsReturned!=null&&message.hasOwnProperty("resultsReturned"))if(!$util.isInteger(message.resultsReturned)&&!(message.resultsReturned&&$util.isInteger(message.resultsReturned.low)&&$util.isInteger(message.resultsReturned.high)))return"resultsReturned: integer|Long expected";if(message.executionDuration!=null&&message.hasOwnProperty("executionDuration")){var error=$root.google.protobuf.Duration.verify(message.executionDuration,long+1);if(error)return"executionDuration."+error}if(message.readOperations!=null&&message.hasOwnProperty("readOperations"))if(!$util.isInteger(message.readOperations)&&!(message.readOperations&&$util.isInteger(message.readOperations.low)&&$util.isInteger(message.readOperations.high)))return"readOperations: integer|Long expected";if(message.debugStats!=null&&message.hasOwnProperty("debugStats")){var error=$root.google.protobuf.Struct.verify(message.debugStats,long+1);if(error)return"debugStats."+error}return null};ExecutionStats.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.ExecutionStats)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ExecutionStats;if(object.resultsReturned!=null)if($util.Long)(message.resultsReturned=$util.Long.fromValue(object.resultsReturned)).unsigned=false;else if(typeof object.resultsReturned==="string")message.resultsReturned=parseInt(object.resultsReturned,10);else if(typeof object.resultsReturned==="number")message.resultsReturned=object.resultsReturned;else if(typeof object.resultsReturned==="object")message.resultsReturned=new $util.LongBits(object.resultsReturned.low>>>0,object.resultsReturned.high>>>0).toNumber();if(object.executionDuration!=null){if(typeof object.executionDuration!=="object")throw TypeError(".google.firestore.v1.ExecutionStats.executionDuration: object expected");message.executionDuration=$root.google.protobuf.Duration.fromObject(object.executionDuration,long+1)}if(object.readOperations!=null)if($util.Long)(message.readOperations=$util.Long.fromValue(object.readOperations)).unsigned=false;else if(typeof object.readOperations==="string")message.readOperations=parseInt(object.readOperations,10);else if(typeof object.readOperations==="number")message.readOperations=object.readOperations;else if(typeof object.readOperations==="object")message.readOperations=new $util.LongBits(object.readOperations.low>>>0,object.readOperations.high>>>0).toNumber();if(object.debugStats!=null){if(typeof object.debugStats!=="object")throw TypeError(".google.firestore.v1.ExecutionStats.debugStats: object expected");message.debugStats=$root.google.protobuf.Struct.fromObject(object.debugStats,long+1)}return message};ExecutionStats.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){if($util.Long){var long=new $util.Long(0,0,false);object.resultsReturned=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.resultsReturned=options.longs===String?"0":0;object.executionDuration=null;if($util.Long){var long=new $util.Long(0,0,false);object.readOperations=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.readOperations=options.longs===String?"0":0;object.debugStats=null}if(message.resultsReturned!=null&&message.hasOwnProperty("resultsReturned"))if(typeof message.resultsReturned==="number")object.resultsReturned=options.longs===String?String(message.resultsReturned):message.resultsReturned;else object.resultsReturned=options.longs===String?$util.Long.prototype.toString.call(message.resultsReturned):options.longs===Number?new $util.LongBits(message.resultsReturned.low>>>0,message.resultsReturned.high>>>0).toNumber():message.resultsReturned;if(message.executionDuration!=null&&message.hasOwnProperty("executionDuration"))object.executionDuration=$root.google.protobuf.Duration.toObject(message.executionDuration,options);if(message.readOperations!=null&&message.hasOwnProperty("readOperations"))if(typeof message.readOperations==="number")object.readOperations=options.longs===String?String(message.readOperations):message.readOperations;else object.readOperations=options.longs===String?$util.Long.prototype.toString.call(message.readOperations):options.longs===Number?new $util.LongBits(message.readOperations.low>>>0,message.readOperations.high>>>0).toNumber():message.readOperations;if(message.debugStats!=null&&message.hasOwnProperty("debugStats"))object.debugStats=$root.google.protobuf.Struct.toObject(message.debugStats,options);return object};ExecutionStats.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ExecutionStats.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.ExecutionStats"};return ExecutionStats}();v1.Write=function(){function Write(properties){this.updateTransforms=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.Write;while(reader.pos>>3){case 1:{message.update=$root.google.firestore.v1.Document.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message["delete"]=reader.string();break}case 6:{message.transform=$root.google.firestore.v1.DocumentTransform.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.updateMask=$root.google.firestore.v1.DocumentMask.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{if(!(message.updateTransforms&&message.updateTransforms.length))message.updateTransforms=[];message.updateTransforms.push($root.google.firestore.v1.DocumentTransform.FieldTransform.decode(reader,reader.uint32(),undefined,long+1));break}case 4:{message.currentDocument=$root.google.firestore.v1.Precondition.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Write.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Write.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.update!=null&&message.hasOwnProperty("update")){properties.operation=1;{var error=$root.google.firestore.v1.Document.verify(message.update,long+1);if(error)return"update."+error}}if(message["delete"]!=null&&message.hasOwnProperty("delete")){if(properties.operation===1)return"operation: multiple values";properties.operation=1;if(!$util.isString(message["delete"]))return"delete: string expected"}if(message.transform!=null&&message.hasOwnProperty("transform")){if(properties.operation===1)return"operation: multiple values";properties.operation=1;{var error=$root.google.firestore.v1.DocumentTransform.verify(message.transform,long+1);if(error)return"transform."+error}}if(message.updateMask!=null&&message.hasOwnProperty("updateMask")){var error=$root.google.firestore.v1.DocumentMask.verify(message.updateMask,long+1);if(error)return"updateMask."+error}if(message.updateTransforms!=null&&message.hasOwnProperty("updateTransforms")){if(!Array.isArray(message.updateTransforms))return"updateTransforms: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.Write;if(object.update!=null){if(typeof object.update!=="object")throw TypeError(".google.firestore.v1.Write.update: object expected");message.update=$root.google.firestore.v1.Document.fromObject(object.update,long+1)}if(object["delete"]!=null)message["delete"]=String(object["delete"]);if(object.transform!=null){if(typeof object.transform!=="object")throw TypeError(".google.firestore.v1.Write.transform: object expected");message.transform=$root.google.firestore.v1.DocumentTransform.fromObject(object.transform,long+1)}if(object.updateMask!=null){if(typeof object.updateMask!=="object")throw TypeError(".google.firestore.v1.Write.updateMask: object expected");message.updateMask=$root.google.firestore.v1.DocumentMask.fromObject(object.updateMask,long+1)}if(object.updateTransforms){if(!Array.isArray(object.updateTransforms))throw TypeError(".google.firestore.v1.Write.updateTransforms: array expected");message.updateTransforms=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.DocumentTransform;while(reader.pos>>3){case 1:{message.document=reader.string();break}case 2:{if(!(message.fieldTransforms&&message.fieldTransforms.length))message.fieldTransforms=[];message.fieldTransforms.push($root.google.firestore.v1.DocumentTransform.FieldTransform.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};DocumentTransform.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DocumentTransform.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.document!=null&&message.hasOwnProperty("document"))if(!$util.isString(message.document))return"document: string expected";if(message.fieldTransforms!=null&&message.hasOwnProperty("fieldTransforms")){if(!Array.isArray(message.fieldTransforms))return"fieldTransforms: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.DocumentTransform;if(object.document!=null)message.document=String(object.document);if(object.fieldTransforms){if(!Array.isArray(object.fieldTransforms))throw TypeError(".google.firestore.v1.DocumentTransform.fieldTransforms: array expected");message.fieldTransforms=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.DocumentTransform.FieldTransform;while(reader.pos>>3){case 1:{message.fieldPath=reader.string();break}case 2:{message.setToServerValue=reader.int32();break}case 3:{message.increment=$root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.maximum=$root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.minimum=$root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.appendMissingElements=$root.google.firestore.v1.ArrayValue.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.removeAllFromArray=$root.google.firestore.v1.ArrayValue.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};FieldTransform.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FieldTransform.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.fieldPath!=null&&message.hasOwnProperty("fieldPath"))if(!$util.isString(message.fieldPath))return"fieldPath: string expected";if(message.setToServerValue!=null&&message.hasOwnProperty("setToServerValue")){properties.transformType=1;switch(message.setToServerValue){default:return"setToServerValue: enum value expected";case 0:case 1:break}}if(message.increment!=null&&message.hasOwnProperty("increment")){if(properties.transformType===1)return"transformType: multiple values";properties.transformType=1;{var error=$root.google.firestore.v1.Value.verify(message.increment,long+1);if(error)return"increment."+error}}if(message.maximum!=null&&message.hasOwnProperty("maximum")){if(properties.transformType===1)return"transformType: multiple values";properties.transformType=1;{var error=$root.google.firestore.v1.Value.verify(message.maximum,long+1);if(error)return"maximum."+error}}if(message.minimum!=null&&message.hasOwnProperty("minimum")){if(properties.transformType===1)return"transformType: multiple values";properties.transformType=1;{var error=$root.google.firestore.v1.Value.verify(message.minimum,long+1);if(error)return"minimum."+error}}if(message.appendMissingElements!=null&&message.hasOwnProperty("appendMissingElements")){if(properties.transformType===1)return"transformType: multiple values";properties.transformType=1;{var error=$root.google.firestore.v1.ArrayValue.verify(message.appendMissingElements,long+1);if(error)return"appendMissingElements."+error}}if(message.removeAllFromArray!=null&&message.hasOwnProperty("removeAllFromArray")){if(properties.transformType===1)return"transformType: multiple values";properties.transformType=1;{var error=$root.google.firestore.v1.ArrayValue.verify(message.removeAllFromArray,long+1);if(error)return"removeAllFromArray."+error}}return null};FieldTransform.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.DocumentTransform.FieldTransform)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.DocumentTransform.FieldTransform;if(object.fieldPath!=null)message.fieldPath=String(object.fieldPath);switch(object.setToServerValue){default:if(typeof object.setToServerValue==="number"){message.setToServerValue=object.setToServerValue;break}break;case"SERVER_VALUE_UNSPECIFIED":case 0:message.setToServerValue=0;break;case"REQUEST_TIME":case 1:message.setToServerValue=1;break}if(object.increment!=null){if(typeof object.increment!=="object")throw TypeError(".google.firestore.v1.DocumentTransform.FieldTransform.increment: object expected");message.increment=$root.google.firestore.v1.Value.fromObject(object.increment,long+1)}if(object.maximum!=null){if(typeof object.maximum!=="object")throw TypeError(".google.firestore.v1.DocumentTransform.FieldTransform.maximum: object expected");message.maximum=$root.google.firestore.v1.Value.fromObject(object.maximum,long+1)}if(object.minimum!=null){if(typeof object.minimum!=="object")throw TypeError(".google.firestore.v1.DocumentTransform.FieldTransform.minimum: object expected");message.minimum=$root.google.firestore.v1.Value.fromObject(object.minimum,long+1)}if(object.appendMissingElements!=null){if(typeof object.appendMissingElements!=="object")throw TypeError(".google.firestore.v1.DocumentTransform.FieldTransform.appendMissingElements: object expected");message.appendMissingElements=$root.google.firestore.v1.ArrayValue.fromObject(object.appendMissingElements,long+1)}if(object.removeAllFromArray!=null){if(typeof object.removeAllFromArray!=="object")throw TypeError(".google.firestore.v1.DocumentTransform.FieldTransform.removeAllFromArray: object expected");message.removeAllFromArray=$root.google.firestore.v1.ArrayValue.fromObject(object.removeAllFromArray,long+1)}return message};FieldTransform.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.fieldPath="";if(message.fieldPath!=null&&message.hasOwnProperty("fieldPath"))object.fieldPath=message.fieldPath;if(message.setToServerValue!=null&&message.hasOwnProperty("setToServerValue")){object.setToServerValue=options.enums===String?$root.google.firestore.v1.DocumentTransform.FieldTransform.ServerValue[message.setToServerValue]===undefined?message.setToServerValue:$root.google.firestore.v1.DocumentTransform.FieldTransform.ServerValue[message.setToServerValue]:message.setToServerValue;if(options.oneofs)object.transformType="setToServerValue"}if(message.increment!=null&&message.hasOwnProperty("increment")){object.increment=$root.google.firestore.v1.Value.toObject(message.increment,options);if(options.oneofs)object.transformType="increment"}if(message.maximum!=null&&message.hasOwnProperty("maximum")){object.maximum=$root.google.firestore.v1.Value.toObject(message.maximum,options);if(options.oneofs)object.transformType="maximum"}if(message.minimum!=null&&message.hasOwnProperty("minimum")){object.minimum=$root.google.firestore.v1.Value.toObject(message.minimum,options);if(options.oneofs)object.transformType="minimum"}if(message.appendMissingElements!=null&&message.hasOwnProperty("appendMissingElements")){object.appendMissingElements=$root.google.firestore.v1.ArrayValue.toObject(message.appendMissingElements,options);if(options.oneofs)object.transformType="appendMissingElements"}if(message.removeAllFromArray!=null&&message.hasOwnProperty("removeAllFromArray")){object.removeAllFromArray=$root.google.firestore.v1.ArrayValue.toObject(message.removeAllFromArray,options);if(options.oneofs)object.transformType="removeAllFromArray"}return object};FieldTransform.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FieldTransform.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.DocumentTransform.FieldTransform"};FieldTransform.ServerValue=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="SERVER_VALUE_UNSPECIFIED"]=0;values[valuesById[1]="REQUEST_TIME"]=1;return values}();return FieldTransform}();return DocumentTransform}();v1.WriteResult=function(){function WriteResult(properties){this.transformResults=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.WriteResult;while(reader.pos>>3){case 1:{message.updateTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{if(!(message.transformResults&&message.transformResults.length))message.transformResults=[];message.transformResults.push($root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};WriteResult.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};WriteResult.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.updateTime!=null&&message.hasOwnProperty("updateTime")){var error=$root.google.protobuf.Timestamp.verify(message.updateTime,long+1);if(error)return"updateTime."+error}if(message.transformResults!=null&&message.hasOwnProperty("transformResults")){if(!Array.isArray(message.transformResults))return"transformResults: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.WriteResult;if(object.updateTime!=null){if(typeof object.updateTime!=="object")throw TypeError(".google.firestore.v1.WriteResult.updateTime: object expected");message.updateTime=$root.google.protobuf.Timestamp.fromObject(object.updateTime,long+1)}if(object.transformResults){if(!Array.isArray(object.transformResults))throw TypeError(".google.firestore.v1.WriteResult.transformResults: array expected");message.transformResults=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.DocumentChange;while(reader.pos>>3){case 1:{message.document=$root.google.firestore.v1.Document.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{if(!(message.targetIds&&message.targetIds.length))message.targetIds=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos$util.recursionLimit)return"maximum nesting depth exceeded";if(message.document!=null&&message.hasOwnProperty("document")){var error=$root.google.firestore.v1.Document.verify(message.document,long+1);if(error)return"document."+error}if(message.targetIds!=null&&message.hasOwnProperty("targetIds")){if(!Array.isArray(message.targetIds))return"targetIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.DocumentChange;if(object.document!=null){if(typeof object.document!=="object")throw TypeError(".google.firestore.v1.DocumentChange.document: object expected");message.document=$root.google.firestore.v1.Document.fromObject(object.document,long+1)}if(object.targetIds){if(!Array.isArray(object.targetIds))throw TypeError(".google.firestore.v1.DocumentChange.targetIds: array expected");message.targetIds=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.DocumentDelete;while(reader.pos>>3){case 1:{message.document=reader.string();break}case 6:{if(!(message.removedTargetIds&&message.removedTargetIds.length))message.removedTargetIds=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos$util.recursionLimit)return"maximum nesting depth exceeded";if(message.document!=null&&message.hasOwnProperty("document"))if(!$util.isString(message.document))return"document: string expected";if(message.removedTargetIds!=null&&message.hasOwnProperty("removedTargetIds")){if(!Array.isArray(message.removedTargetIds))return"removedTargetIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.DocumentDelete;if(object.document!=null)message.document=String(object.document);if(object.removedTargetIds){if(!Array.isArray(object.removedTargetIds))throw TypeError(".google.firestore.v1.DocumentDelete.removedTargetIds: array expected");message.removedTargetIds=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.DocumentRemove;while(reader.pos>>3){case 1:{message.document=reader.string();break}case 2:{if(!(message.removedTargetIds&&message.removedTargetIds.length))message.removedTargetIds=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos$util.recursionLimit)return"maximum nesting depth exceeded";if(message.document!=null&&message.hasOwnProperty("document"))if(!$util.isString(message.document))return"document: string expected";if(message.removedTargetIds!=null&&message.hasOwnProperty("removedTargetIds")){if(!Array.isArray(message.removedTargetIds))return"removedTargetIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.DocumentRemove;if(object.document!=null)message.document=String(object.document);if(object.removedTargetIds){if(!Array.isArray(object.removedTargetIds))throw TypeError(".google.firestore.v1.DocumentRemove.removedTargetIds: array expected");message.removedTargetIds=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ExistenceFilter;while(reader.pos>>3){case 1:{message.targetId=reader.int32();break}case 2:{message.count=reader.int32();break}case 3:{message.unchangedNames=$root.google.firestore.v1.BloomFilter.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ExistenceFilter.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExistenceFilter.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.targetId!=null&&message.hasOwnProperty("targetId"))if(!$util.isInteger(message.targetId))return"targetId: integer expected";if(message.count!=null&&message.hasOwnProperty("count"))if(!$util.isInteger(message.count))return"count: integer expected";if(message.unchangedNames!=null&&message.hasOwnProperty("unchangedNames")){var error=$root.google.firestore.v1.BloomFilter.verify(message.unchangedNames,long+1);if(error)return"unchangedNames."+error}return null};ExistenceFilter.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.ExistenceFilter)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ExistenceFilter;if(object.targetId!=null)message.targetId=object.targetId|0;if(object.count!=null)message.count=object.count|0;if(object.unchangedNames!=null){if(typeof object.unchangedNames!=="object")throw TypeError(".google.firestore.v1.ExistenceFilter.unchangedNames: object expected");message.unchangedNames=$root.google.firestore.v1.BloomFilter.fromObject(object.unchangedNames,long+1)}return message};ExistenceFilter.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.targetId=0;object.count=0;object.unchangedNames=null}if(message.targetId!=null&&message.hasOwnProperty("targetId"))object.targetId=message.targetId;if(message.count!=null&&message.hasOwnProperty("count"))object.count=message.count;if(message.unchangedNames!=null&&message.hasOwnProperty("unchangedNames"))object.unchangedNames=$root.google.firestore.v1.BloomFilter.toObject(message.unchangedNames,options);return object};ExistenceFilter.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ExistenceFilter.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.ExistenceFilter"};return ExistenceFilter}();return v1}();firestore.v1beta1=function(){var v1beta1={};v1beta1.DocumentMask=function(){function DocumentMask(properties){this.fieldPaths=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.DocumentMask;while(reader.pos>>3){case 1:{if(!(message.fieldPaths&&message.fieldPaths.length))message.fieldPaths=[];message.fieldPaths.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};DocumentMask.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DocumentMask.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.fieldPaths!=null&&message.hasOwnProperty("fieldPaths")){if(!Array.isArray(message.fieldPaths))return"fieldPaths: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.DocumentMask;if(object.fieldPaths){if(!Array.isArray(object.fieldPaths))throw TypeError(".google.firestore.v1beta1.DocumentMask.fieldPaths: array expected");message.fieldPaths=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.Precondition;while(reader.pos>>3){case 1:{message.exists=reader.bool();break}case 2:{message.updateTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Precondition.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Precondition.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.exists!=null&&message.hasOwnProperty("exists")){properties.conditionType=1;if(typeof message.exists!=="boolean")return"exists: boolean expected"}if(message.updateTime!=null&&message.hasOwnProperty("updateTime")){if(properties.conditionType===1)return"conditionType: multiple values";properties.conditionType=1;{var error=$root.google.protobuf.Timestamp.verify(message.updateTime,long+1);if(error)return"updateTime."+error}}return null};Precondition.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.Precondition)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.Precondition;if(object.exists!=null)message.exists=Boolean(object.exists);if(object.updateTime!=null){if(typeof object.updateTime!=="object")throw TypeError(".google.firestore.v1beta1.Precondition.updateTime: object expected");message.updateTime=$root.google.protobuf.Timestamp.fromObject(object.updateTime,long+1)}return message};Precondition.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.exists!=null&&message.hasOwnProperty("exists")){object.exists=message.exists;if(options.oneofs)object.conditionType="exists"}if(message.updateTime!=null&&message.hasOwnProperty("updateTime")){object.updateTime=$root.google.protobuf.Timestamp.toObject(message.updateTime,options);if(options.oneofs)object.conditionType="updateTime"}return object};Precondition.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Precondition.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.Precondition"};return Precondition}();v1beta1.TransactionOptions=function(){function TransactionOptions(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.TransactionOptions;while(reader.pos>>3){case 2:{message.readOnly=$root.google.firestore.v1beta1.TransactionOptions.ReadOnly.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.readWrite=$root.google.firestore.v1beta1.TransactionOptions.ReadWrite.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};TransactionOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};TransactionOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.readOnly!=null&&message.hasOwnProperty("readOnly")){properties.mode=1;{var error=$root.google.firestore.v1beta1.TransactionOptions.ReadOnly.verify(message.readOnly,long+1);if(error)return"readOnly."+error}}if(message.readWrite!=null&&message.hasOwnProperty("readWrite")){if(properties.mode===1)return"mode: multiple values";properties.mode=1;{var error=$root.google.firestore.v1beta1.TransactionOptions.ReadWrite.verify(message.readWrite,long+1);if(error)return"readWrite."+error}}return null};TransactionOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.TransactionOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.TransactionOptions;if(object.readOnly!=null){if(typeof object.readOnly!=="object")throw TypeError(".google.firestore.v1beta1.TransactionOptions.readOnly: object expected");message.readOnly=$root.google.firestore.v1beta1.TransactionOptions.ReadOnly.fromObject(object.readOnly,long+1)}if(object.readWrite!=null){if(typeof object.readWrite!=="object")throw TypeError(".google.firestore.v1beta1.TransactionOptions.readWrite: object expected");message.readWrite=$root.google.firestore.v1beta1.TransactionOptions.ReadWrite.fromObject(object.readWrite,long+1)}return message};TransactionOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.readOnly!=null&&message.hasOwnProperty("readOnly")){object.readOnly=$root.google.firestore.v1beta1.TransactionOptions.ReadOnly.toObject(message.readOnly,options);if(options.oneofs)object.mode="readOnly"}if(message.readWrite!=null&&message.hasOwnProperty("readWrite")){object.readWrite=$root.google.firestore.v1beta1.TransactionOptions.ReadWrite.toObject(message.readWrite,options);if(options.oneofs)object.mode="readWrite"}return object};TransactionOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};TransactionOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.TransactionOptions"};TransactionOptions.ReadWrite=function(){function ReadWrite(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.TransactionOptions.ReadWrite;while(reader.pos>>3){case 1:{message.retryTransaction=reader.bytes();break}default:reader.skipType(tag&7,long);break}}return message};ReadWrite.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ReadWrite.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.retryTransaction!=null&&message.hasOwnProperty("retryTransaction"))if(!(message.retryTransaction&&typeof message.retryTransaction.length==="number"||$util.isString(message.retryTransaction)))return"retryTransaction: buffer expected";return null};ReadWrite.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.TransactionOptions.ReadWrite)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.TransactionOptions.ReadWrite;if(object.retryTransaction!=null)if(typeof object.retryTransaction==="string")$util.base64.decode(object.retryTransaction,message.retryTransaction=$util.newBuffer($util.base64.length(object.retryTransaction)),0);else if(object.retryTransaction.length>=0)message.retryTransaction=object.retryTransaction;return message};ReadWrite.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)if(options.bytes===String)object.retryTransaction="";else{object.retryTransaction=[];if(options.bytes!==Array)object.retryTransaction=$util.newBuffer(object.retryTransaction)}if(message.retryTransaction!=null&&message.hasOwnProperty("retryTransaction"))object.retryTransaction=options.bytes===String?$util.base64.encode(message.retryTransaction,0,message.retryTransaction.length):options.bytes===Array?Array.prototype.slice.call(message.retryTransaction):message.retryTransaction;return object};ReadWrite.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ReadWrite.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.TransactionOptions.ReadWrite"};return ReadWrite}();TransactionOptions.ReadOnly=function(){function ReadOnly(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.TransactionOptions.ReadOnly;while(reader.pos>>3){case 2:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ReadOnly.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ReadOnly.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.readTime!=null&&message.hasOwnProperty("readTime")){properties.consistencySelector=1;{var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}}return null};ReadOnly.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.TransactionOptions.ReadOnly)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.TransactionOptions.ReadOnly;if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1beta1.TransactionOptions.ReadOnly.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}return message};ReadOnly.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.readTime!=null&&message.hasOwnProperty("readTime")){object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(options.oneofs)object.consistencySelector="readTime"}return object};ReadOnly.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ReadOnly.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.TransactionOptions.ReadOnly"};return ReadOnly}();return TransactionOptions}();v1beta1.Document=function(){function Document(properties){this.fields={};if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.Document,key,value;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{if(message.fields===$util.emptyObject)message.fields={};var end2=reader.uint32()+reader.pos;key="";value=null;while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=$root.google.firestore.v1beta1.Value.decode(reader,reader.uint32(),undefined,long+1);break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.fields,key);message.fields[key]=value;break}case 3:{message.createTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.updateTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Document.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Document.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.fields!=null&&message.hasOwnProperty("fields")){if(!$util.isObject(message.fields))return"fields: object expected";var key=Object.keys(message.fields);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.Document;if(object.name!=null)message.name=String(object.name);if(object.fields){if(typeof object.fields!=="object")throw TypeError(".google.firestore.v1beta1.Document.fields: object expected");message.fields={};for(var keys=Object.keys(object.fields),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.Value;while(reader.pos>>3){case 11:{message.nullValue=reader.int32();break}case 1:{message.booleanValue=reader.bool();break}case 2:{message.integerValue=reader.int64();break}case 3:{message.doubleValue=reader.double();break}case 10:{message.timestampValue=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 17:{message.stringValue=reader.string();break}case 18:{message.bytesValue=reader.bytes();break}case 5:{message.referenceValue=reader.string();break}case 8:{message.geoPointValue=$root.google.type.LatLng.decode(reader,reader.uint32(),undefined,long+1);break}case 9:{message.arrayValue=$root.google.firestore.v1beta1.ArrayValue.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.mapValue=$root.google.firestore.v1beta1.MapValue.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Value.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Value.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.nullValue!=null&&message.hasOwnProperty("nullValue")){properties.valueType=1;switch(message.nullValue){default:return"nullValue: enum value expected";case 0:break}}if(message.booleanValue!=null&&message.hasOwnProperty("booleanValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;if(typeof message.booleanValue!=="boolean")return"booleanValue: boolean expected"}if(message.integerValue!=null&&message.hasOwnProperty("integerValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;if(!$util.isInteger(message.integerValue)&&!(message.integerValue&&$util.isInteger(message.integerValue.low)&&$util.isInteger(message.integerValue.high)))return"integerValue: integer|Long expected"}if(message.doubleValue!=null&&message.hasOwnProperty("doubleValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;if(typeof message.doubleValue!=="number")return"doubleValue: number expected"}if(message.timestampValue!=null&&message.hasOwnProperty("timestampValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;{var error=$root.google.protobuf.Timestamp.verify(message.timestampValue,long+1);if(error)return"timestampValue."+error}}if(message.stringValue!=null&&message.hasOwnProperty("stringValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;if(!$util.isString(message.stringValue))return"stringValue: string expected"}if(message.bytesValue!=null&&message.hasOwnProperty("bytesValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;if(!(message.bytesValue&&typeof message.bytesValue.length==="number"||$util.isString(message.bytesValue)))return"bytesValue: buffer expected"}if(message.referenceValue!=null&&message.hasOwnProperty("referenceValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;if(!$util.isString(message.referenceValue))return"referenceValue: string expected"}if(message.geoPointValue!=null&&message.hasOwnProperty("geoPointValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;{var error=$root.google.type.LatLng.verify(message.geoPointValue,long+1);if(error)return"geoPointValue."+error}}if(message.arrayValue!=null&&message.hasOwnProperty("arrayValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;{var error=$root.google.firestore.v1beta1.ArrayValue.verify(message.arrayValue,long+1);if(error)return"arrayValue."+error}}if(message.mapValue!=null&&message.hasOwnProperty("mapValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;{var error=$root.google.firestore.v1beta1.MapValue.verify(message.mapValue,long+1);if(error)return"mapValue."+error}}return null};Value.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.Value)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.Value;switch(object.nullValue){default:if(typeof object.nullValue==="number"){message.nullValue=object.nullValue;break}break;case"NULL_VALUE":case 0:message.nullValue=0;break}if(object.booleanValue!=null)message.booleanValue=Boolean(object.booleanValue);if(object.integerValue!=null)if($util.Long)(message.integerValue=$util.Long.fromValue(object.integerValue)).unsigned=false;else if(typeof object.integerValue==="string")message.integerValue=parseInt(object.integerValue,10);else if(typeof object.integerValue==="number")message.integerValue=object.integerValue;else if(typeof object.integerValue==="object")message.integerValue=new $util.LongBits(object.integerValue.low>>>0,object.integerValue.high>>>0).toNumber();if(object.doubleValue!=null)message.doubleValue=Number(object.doubleValue);if(object.timestampValue!=null){if(typeof object.timestampValue!=="object")throw TypeError(".google.firestore.v1beta1.Value.timestampValue: object expected");message.timestampValue=$root.google.protobuf.Timestamp.fromObject(object.timestampValue,long+1)}if(object.stringValue!=null)message.stringValue=String(object.stringValue);if(object.bytesValue!=null)if(typeof object.bytesValue==="string")$util.base64.decode(object.bytesValue,message.bytesValue=$util.newBuffer($util.base64.length(object.bytesValue)),0);else if(object.bytesValue.length>=0)message.bytesValue=object.bytesValue;if(object.referenceValue!=null)message.referenceValue=String(object.referenceValue);if(object.geoPointValue!=null){if(typeof object.geoPointValue!=="object")throw TypeError(".google.firestore.v1beta1.Value.geoPointValue: object expected");message.geoPointValue=$root.google.type.LatLng.fromObject(object.geoPointValue,long+1)}if(object.arrayValue!=null){if(typeof object.arrayValue!=="object")throw TypeError(".google.firestore.v1beta1.Value.arrayValue: object expected");message.arrayValue=$root.google.firestore.v1beta1.ArrayValue.fromObject(object.arrayValue,long+1)}if(object.mapValue!=null){if(typeof object.mapValue!=="object")throw TypeError(".google.firestore.v1beta1.Value.mapValue: object expected");message.mapValue=$root.google.firestore.v1beta1.MapValue.fromObject(object.mapValue,long+1)}return message};Value.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.booleanValue!=null&&message.hasOwnProperty("booleanValue")){object.booleanValue=message.booleanValue;if(options.oneofs)object.valueType="booleanValue"}if(message.integerValue!=null&&message.hasOwnProperty("integerValue")){if(typeof message.integerValue==="number")object.integerValue=options.longs===String?String(message.integerValue):message.integerValue;else object.integerValue=options.longs===String?$util.Long.prototype.toString.call(message.integerValue):options.longs===Number?new $util.LongBits(message.integerValue.low>>>0,message.integerValue.high>>>0).toNumber():message.integerValue;if(options.oneofs)object.valueType="integerValue"}if(message.doubleValue!=null&&message.hasOwnProperty("doubleValue")){object.doubleValue=options.json&&!isFinite(message.doubleValue)?String(message.doubleValue):message.doubleValue;if(options.oneofs)object.valueType="doubleValue"}if(message.referenceValue!=null&&message.hasOwnProperty("referenceValue")){object.referenceValue=message.referenceValue;if(options.oneofs)object.valueType="referenceValue"}if(message.mapValue!=null&&message.hasOwnProperty("mapValue")){object.mapValue=$root.google.firestore.v1beta1.MapValue.toObject(message.mapValue,options);if(options.oneofs)object.valueType="mapValue"}if(message.geoPointValue!=null&&message.hasOwnProperty("geoPointValue")){object.geoPointValue=$root.google.type.LatLng.toObject(message.geoPointValue,options);if(options.oneofs)object.valueType="geoPointValue"}if(message.arrayValue!=null&&message.hasOwnProperty("arrayValue")){object.arrayValue=$root.google.firestore.v1beta1.ArrayValue.toObject(message.arrayValue,options);if(options.oneofs)object.valueType="arrayValue"}if(message.timestampValue!=null&&message.hasOwnProperty("timestampValue")){object.timestampValue=$root.google.protobuf.Timestamp.toObject(message.timestampValue,options);if(options.oneofs)object.valueType="timestampValue"}if(message.nullValue!=null&&message.hasOwnProperty("nullValue")){object.nullValue=options.enums===String?$root.google.protobuf.NullValue[message.nullValue]===undefined?message.nullValue:$root.google.protobuf.NullValue[message.nullValue]:message.nullValue;if(options.oneofs)object.valueType="nullValue"}if(message.stringValue!=null&&message.hasOwnProperty("stringValue")){object.stringValue=message.stringValue;if(options.oneofs)object.valueType="stringValue"}if(message.bytesValue!=null&&message.hasOwnProperty("bytesValue")){object.bytesValue=options.bytes===String?$util.base64.encode(message.bytesValue,0,message.bytesValue.length):options.bytes===Array?Array.prototype.slice.call(message.bytesValue):message.bytesValue;if(options.oneofs)object.valueType="bytesValue"}return object};Value.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.Value"};return Value}();v1beta1.ArrayValue=function(){function ArrayValue(properties){this.values=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.ArrayValue;while(reader.pos>>3){case 1:{if(!(message.values&&message.values.length))message.values=[];message.values.push($root.google.firestore.v1beta1.Value.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};ArrayValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ArrayValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.values!=null&&message.hasOwnProperty("values")){if(!Array.isArray(message.values))return"values: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.ArrayValue;if(object.values){if(!Array.isArray(object.values))throw TypeError(".google.firestore.v1beta1.ArrayValue.values: array expected");message.values=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.MapValue,key,value;while(reader.pos>>3){case 1:{if(message.fields===$util.emptyObject)message.fields={};var end2=reader.uint32()+reader.pos;key="";value=null;while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=$root.google.firestore.v1beta1.Value.decode(reader,reader.uint32(),undefined,long+1);break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.fields,key);message.fields[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};MapValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};MapValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.fields!=null&&message.hasOwnProperty("fields")){if(!$util.isObject(message.fields))return"fields: object expected";var key=Object.keys(message.fields);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.MapValue;if(object.fields){if(typeof object.fields!=="object")throw TypeError(".google.firestore.v1beta1.MapValue.fields: object expected");message.fields={};for(var keys=Object.keys(object.fields),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.GetDocumentRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{message.mask=$root.google.firestore.v1beta1.DocumentMask.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.transaction=reader.bytes();break}case 5:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};GetDocumentRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GetDocumentRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.mask!=null&&message.hasOwnProperty("mask")){var error=$root.google.firestore.v1beta1.DocumentMask.verify(message.mask,long+1);if(error)return"mask."+error}if(message.transaction!=null&&message.hasOwnProperty("transaction")){properties.consistencySelector=1;if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected"}if(message.readTime!=null&&message.hasOwnProperty("readTime")){if(properties.consistencySelector===1)return"consistencySelector: multiple values";properties.consistencySelector=1;{var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}}return null};GetDocumentRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.GetDocumentRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.GetDocumentRequest;if(object.name!=null)message.name=String(object.name);if(object.mask!=null){if(typeof object.mask!=="object")throw TypeError(".google.firestore.v1beta1.GetDocumentRequest.mask: object expected");message.mask=$root.google.firestore.v1beta1.DocumentMask.fromObject(object.mask,long+1)}if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1beta1.GetDocumentRequest.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}return message};GetDocumentRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.mask=null}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.mask!=null&&message.hasOwnProperty("mask"))object.mask=$root.google.firestore.v1beta1.DocumentMask.toObject(message.mask,options);if(message.transaction!=null&&message.hasOwnProperty("transaction")){object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;if(options.oneofs)object.consistencySelector="transaction"}if(message.readTime!=null&&message.hasOwnProperty("readTime")){object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(options.oneofs)object.consistencySelector="readTime"}return object};GetDocumentRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GetDocumentRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.GetDocumentRequest"};return GetDocumentRequest}();v1beta1.ListDocumentsRequest=function(){function ListDocumentsRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.ListDocumentsRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.collectionId=reader.string();break}case 3:{message.pageSize=reader.int32();break}case 4:{message.pageToken=reader.string();break}case 6:{message.orderBy=reader.string();break}case 7:{message.mask=$root.google.firestore.v1beta1.DocumentMask.decode(reader,reader.uint32(),undefined,long+1);break}case 8:{message.transaction=reader.bytes();break}case 10:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 12:{message.showMissing=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};ListDocumentsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListDocumentsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.collectionId!=null&&message.hasOwnProperty("collectionId"))if(!$util.isString(message.collectionId))return"collectionId: string expected";if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))if(!$util.isInteger(message.pageSize))return"pageSize: integer expected";if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))if(!$util.isString(message.pageToken))return"pageToken: string expected";if(message.orderBy!=null&&message.hasOwnProperty("orderBy"))if(!$util.isString(message.orderBy))return"orderBy: string expected";if(message.mask!=null&&message.hasOwnProperty("mask")){var error=$root.google.firestore.v1beta1.DocumentMask.verify(message.mask,long+1);if(error)return"mask."+error}if(message.transaction!=null&&message.hasOwnProperty("transaction")){properties.consistencySelector=1;if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected"}if(message.readTime!=null&&message.hasOwnProperty("readTime")){if(properties.consistencySelector===1)return"consistencySelector: multiple values";properties.consistencySelector=1;{var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}}if(message.showMissing!=null&&message.hasOwnProperty("showMissing"))if(typeof message.showMissing!=="boolean")return"showMissing: boolean expected";return null};ListDocumentsRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.ListDocumentsRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.ListDocumentsRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.collectionId!=null)message.collectionId=String(object.collectionId);if(object.pageSize!=null)message.pageSize=object.pageSize|0;if(object.pageToken!=null)message.pageToken=String(object.pageToken);if(object.orderBy!=null)message.orderBy=String(object.orderBy);if(object.mask!=null){if(typeof object.mask!=="object")throw TypeError(".google.firestore.v1beta1.ListDocumentsRequest.mask: object expected");message.mask=$root.google.firestore.v1beta1.DocumentMask.fromObject(object.mask,long+1)}if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1beta1.ListDocumentsRequest.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}if(object.showMissing!=null)message.showMissing=Boolean(object.showMissing);return message};ListDocumentsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.collectionId="";object.pageSize=0;object.pageToken="";object.orderBy="";object.mask=null;object.showMissing=false}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.collectionId!=null&&message.hasOwnProperty("collectionId"))object.collectionId=message.collectionId;if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))object.pageSize=message.pageSize;if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))object.pageToken=message.pageToken;if(message.orderBy!=null&&message.hasOwnProperty("orderBy"))object.orderBy=message.orderBy;if(message.mask!=null&&message.hasOwnProperty("mask"))object.mask=$root.google.firestore.v1beta1.DocumentMask.toObject(message.mask,options);if(message.transaction!=null&&message.hasOwnProperty("transaction")){object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;if(options.oneofs)object.consistencySelector="transaction"}if(message.readTime!=null&&message.hasOwnProperty("readTime")){object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(options.oneofs)object.consistencySelector="readTime"}if(message.showMissing!=null&&message.hasOwnProperty("showMissing"))object.showMissing=message.showMissing;return object};ListDocumentsRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ListDocumentsRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.ListDocumentsRequest"};return ListDocumentsRequest}();v1beta1.ListDocumentsResponse=function(){function ListDocumentsResponse(properties){this.documents=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.ListDocumentsResponse;while(reader.pos>>3){case 1:{if(!(message.documents&&message.documents.length))message.documents=[];message.documents.push($root.google.firestore.v1beta1.Document.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.nextPageToken=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ListDocumentsResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListDocumentsResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.documents!=null&&message.hasOwnProperty("documents")){if(!Array.isArray(message.documents))return"documents: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.ListDocumentsResponse;if(object.documents){if(!Array.isArray(object.documents))throw TypeError(".google.firestore.v1beta1.ListDocumentsResponse.documents: array expected");message.documents=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.CreateDocumentRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.collectionId=reader.string();break}case 3:{message.documentId=reader.string();break}case 4:{message.document=$root.google.firestore.v1beta1.Document.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.mask=$root.google.firestore.v1beta1.DocumentMask.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};CreateDocumentRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CreateDocumentRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.collectionId!=null&&message.hasOwnProperty("collectionId"))if(!$util.isString(message.collectionId))return"collectionId: string expected";if(message.documentId!=null&&message.hasOwnProperty("documentId"))if(!$util.isString(message.documentId))return"documentId: string expected";if(message.document!=null&&message.hasOwnProperty("document")){var error=$root.google.firestore.v1beta1.Document.verify(message.document,long+1);if(error)return"document."+error}if(message.mask!=null&&message.hasOwnProperty("mask")){var error=$root.google.firestore.v1beta1.DocumentMask.verify(message.mask,long+1);if(error)return"mask."+error}return null};CreateDocumentRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.CreateDocumentRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.CreateDocumentRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.collectionId!=null)message.collectionId=String(object.collectionId);if(object.documentId!=null)message.documentId=String(object.documentId);if(object.document!=null){if(typeof object.document!=="object")throw TypeError(".google.firestore.v1beta1.CreateDocumentRequest.document: object expected");message.document=$root.google.firestore.v1beta1.Document.fromObject(object.document,long+1)}if(object.mask!=null){if(typeof object.mask!=="object")throw TypeError(".google.firestore.v1beta1.CreateDocumentRequest.mask: object expected");message.mask=$root.google.firestore.v1beta1.DocumentMask.fromObject(object.mask,long+1)}return message};CreateDocumentRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.collectionId="";object.documentId="";object.document=null;object.mask=null}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.collectionId!=null&&message.hasOwnProperty("collectionId"))object.collectionId=message.collectionId;if(message.documentId!=null&&message.hasOwnProperty("documentId"))object.documentId=message.documentId;if(message.document!=null&&message.hasOwnProperty("document"))object.document=$root.google.firestore.v1beta1.Document.toObject(message.document,options);if(message.mask!=null&&message.hasOwnProperty("mask"))object.mask=$root.google.firestore.v1beta1.DocumentMask.toObject(message.mask,options);return object};CreateDocumentRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CreateDocumentRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.CreateDocumentRequest"};return CreateDocumentRequest}();v1beta1.UpdateDocumentRequest=function(){function UpdateDocumentRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.UpdateDocumentRequest;while(reader.pos>>3){case 1:{message.document=$root.google.firestore.v1beta1.Document.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.updateMask=$root.google.firestore.v1beta1.DocumentMask.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.mask=$root.google.firestore.v1beta1.DocumentMask.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.currentDocument=$root.google.firestore.v1beta1.Precondition.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};UpdateDocumentRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UpdateDocumentRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.document!=null&&message.hasOwnProperty("document")){var error=$root.google.firestore.v1beta1.Document.verify(message.document,long+1);if(error)return"document."+error}if(message.updateMask!=null&&message.hasOwnProperty("updateMask")){var error=$root.google.firestore.v1beta1.DocumentMask.verify(message.updateMask,long+1);if(error)return"updateMask."+error}if(message.mask!=null&&message.hasOwnProperty("mask")){var error=$root.google.firestore.v1beta1.DocumentMask.verify(message.mask,long+1);if(error)return"mask."+error}if(message.currentDocument!=null&&message.hasOwnProperty("currentDocument")){var error=$root.google.firestore.v1beta1.Precondition.verify(message.currentDocument,long+1);if(error)return"currentDocument."+error}return null};UpdateDocumentRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.UpdateDocumentRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.UpdateDocumentRequest;if(object.document!=null){if(typeof object.document!=="object")throw TypeError(".google.firestore.v1beta1.UpdateDocumentRequest.document: object expected");message.document=$root.google.firestore.v1beta1.Document.fromObject(object.document,long+1)}if(object.updateMask!=null){if(typeof object.updateMask!=="object")throw TypeError(".google.firestore.v1beta1.UpdateDocumentRequest.updateMask: object expected");message.updateMask=$root.google.firestore.v1beta1.DocumentMask.fromObject(object.updateMask,long+1)}if(object.mask!=null){if(typeof object.mask!=="object")throw TypeError(".google.firestore.v1beta1.UpdateDocumentRequest.mask: object expected");message.mask=$root.google.firestore.v1beta1.DocumentMask.fromObject(object.mask,long+1)}if(object.currentDocument!=null){if(typeof object.currentDocument!=="object")throw TypeError(".google.firestore.v1beta1.UpdateDocumentRequest.currentDocument: object expected");message.currentDocument=$root.google.firestore.v1beta1.Precondition.fromObject(object.currentDocument,long+1)}return message};UpdateDocumentRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.document=null;object.updateMask=null;object.mask=null;object.currentDocument=null}if(message.document!=null&&message.hasOwnProperty("document"))object.document=$root.google.firestore.v1beta1.Document.toObject(message.document,options);if(message.updateMask!=null&&message.hasOwnProperty("updateMask"))object.updateMask=$root.google.firestore.v1beta1.DocumentMask.toObject(message.updateMask,options);if(message.mask!=null&&message.hasOwnProperty("mask"))object.mask=$root.google.firestore.v1beta1.DocumentMask.toObject(message.mask,options);if(message.currentDocument!=null&&message.hasOwnProperty("currentDocument"))object.currentDocument=$root.google.firestore.v1beta1.Precondition.toObject(message.currentDocument,options);return object};UpdateDocumentRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UpdateDocumentRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.UpdateDocumentRequest"};return UpdateDocumentRequest}();v1beta1.DeleteDocumentRequest=function(){function DeleteDocumentRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.DeleteDocumentRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{message.currentDocument=$root.google.firestore.v1beta1.Precondition.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};DeleteDocumentRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DeleteDocumentRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.currentDocument!=null&&message.hasOwnProperty("currentDocument")){var error=$root.google.firestore.v1beta1.Precondition.verify(message.currentDocument,long+1);if(error)return"currentDocument."+error}return null};DeleteDocumentRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.DeleteDocumentRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.DeleteDocumentRequest;if(object.name!=null)message.name=String(object.name);if(object.currentDocument!=null){if(typeof object.currentDocument!=="object")throw TypeError(".google.firestore.v1beta1.DeleteDocumentRequest.currentDocument: object expected");message.currentDocument=$root.google.firestore.v1beta1.Precondition.fromObject(object.currentDocument,long+1)}return message};DeleteDocumentRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.currentDocument=null}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.currentDocument!=null&&message.hasOwnProperty("currentDocument"))object.currentDocument=$root.google.firestore.v1beta1.Precondition.toObject(message.currentDocument,options);return object};DeleteDocumentRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DeleteDocumentRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.DeleteDocumentRequest"};return DeleteDocumentRequest}();v1beta1.BatchGetDocumentsRequest=function(){function BatchGetDocumentsRequest(properties){this.documents=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.BatchGetDocumentsRequest;while(reader.pos>>3){case 1:{message.database=reader.string();break}case 2:{if(!(message.documents&&message.documents.length))message.documents=[];message.documents.push(reader.string());break}case 3:{message.mask=$root.google.firestore.v1beta1.DocumentMask.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.transaction=reader.bytes();break}case 5:{message.newTransaction=$root.google.firestore.v1beta1.TransactionOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};BatchGetDocumentsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BatchGetDocumentsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.documents!=null&&message.hasOwnProperty("documents")){if(!Array.isArray(message.documents))return"documents: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.BatchGetDocumentsRequest;if(object.database!=null)message.database=String(object.database);if(object.documents){if(!Array.isArray(object.documents))throw TypeError(".google.firestore.v1beta1.BatchGetDocumentsRequest.documents: array expected");message.documents=[];for(var i=0;i=0)message.transaction=object.transaction;if(object.newTransaction!=null){if(typeof object.newTransaction!=="object")throw TypeError(".google.firestore.v1beta1.BatchGetDocumentsRequest.newTransaction: object expected");message.newTransaction=$root.google.firestore.v1beta1.TransactionOptions.fromObject(object.newTransaction,long+1)}if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1beta1.BatchGetDocumentsRequest.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}return message};BatchGetDocumentsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.documents=[];if(options.defaults){object.database="";object.mask=null}if(message.database!=null&&message.hasOwnProperty("database"))object.database=message.database;if(message.documents&&message.documents.length){object.documents=[];for(var j=0;j$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.BatchGetDocumentsResponse;while(reader.pos>>3){case 1:{message.found=$root.google.firestore.v1beta1.Document.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.missing=reader.string();break}case 3:{message.transaction=reader.bytes();break}case 4:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};BatchGetDocumentsResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BatchGetDocumentsResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.found!=null&&message.hasOwnProperty("found")){properties.result=1;{var error=$root.google.firestore.v1beta1.Document.verify(message.found,long+1);if(error)return"found."+error}}if(message.missing!=null&&message.hasOwnProperty("missing")){if(properties.result===1)return"result: multiple values";properties.result=1;if(!$util.isString(message.missing))return"missing: string expected"}if(message.transaction!=null&&message.hasOwnProperty("transaction"))if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected";if(message.readTime!=null&&message.hasOwnProperty("readTime")){var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}return null};BatchGetDocumentsResponse.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.BatchGetDocumentsResponse)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.BatchGetDocumentsResponse;if(object.found!=null){if(typeof object.found!=="object")throw TypeError(".google.firestore.v1beta1.BatchGetDocumentsResponse.found: object expected");message.found=$root.google.firestore.v1beta1.Document.fromObject(object.found,long+1)}if(object.missing!=null)message.missing=String(object.missing);if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1beta1.BatchGetDocumentsResponse.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}return message};BatchGetDocumentsResponse.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){if(options.bytes===String)object.transaction="";else{object.transaction=[];if(options.bytes!==Array)object.transaction=$util.newBuffer(object.transaction)}object.readTime=null}if(message.found!=null&&message.hasOwnProperty("found")){object.found=$root.google.firestore.v1beta1.Document.toObject(message.found,options);if(options.oneofs)object.result="found"}if(message.missing!=null&&message.hasOwnProperty("missing")){object.missing=message.missing;if(options.oneofs)object.result="missing"}if(message.transaction!=null&&message.hasOwnProperty("transaction"))object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;if(message.readTime!=null&&message.hasOwnProperty("readTime"))object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);return object};BatchGetDocumentsResponse.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BatchGetDocumentsResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.BatchGetDocumentsResponse"};return BatchGetDocumentsResponse}();v1beta1.BeginTransactionRequest=function(){function BeginTransactionRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.BeginTransactionRequest;while(reader.pos>>3){case 1:{message.database=reader.string();break}case 2:{message.options=$root.google.firestore.v1beta1.TransactionOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};BeginTransactionRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BeginTransactionRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.firestore.v1beta1.TransactionOptions.verify(message.options,long+1);if(error)return"options."+error}return null};BeginTransactionRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.BeginTransactionRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.BeginTransactionRequest;if(object.database!=null)message.database=String(object.database);if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.firestore.v1beta1.BeginTransactionRequest.options: object expected");message.options=$root.google.firestore.v1beta1.TransactionOptions.fromObject(object.options,long+1)}return message};BeginTransactionRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.database="";object.options=null}if(message.database!=null&&message.hasOwnProperty("database"))object.database=message.database;if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.firestore.v1beta1.TransactionOptions.toObject(message.options,options);return object};BeginTransactionRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BeginTransactionRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.BeginTransactionRequest"};return BeginTransactionRequest}();v1beta1.BeginTransactionResponse=function(){function BeginTransactionResponse(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.BeginTransactionResponse;while(reader.pos>>3){case 1:{message.transaction=reader.bytes();break}default:reader.skipType(tag&7,long);break}}return message};BeginTransactionResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BeginTransactionResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.transaction!=null&&message.hasOwnProperty("transaction"))if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected";return null};BeginTransactionResponse.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.BeginTransactionResponse)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.BeginTransactionResponse;if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;return message};BeginTransactionResponse.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)if(options.bytes===String)object.transaction="";else{object.transaction=[];if(options.bytes!==Array)object.transaction=$util.newBuffer(object.transaction)}if(message.transaction!=null&&message.hasOwnProperty("transaction"))object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;return object};BeginTransactionResponse.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BeginTransactionResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.BeginTransactionResponse"};return BeginTransactionResponse}();v1beta1.CommitRequest=function(){function CommitRequest(properties){this.writes=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.CommitRequest;while(reader.pos>>3){case 1:{message.database=reader.string();break}case 2:{if(!(message.writes&&message.writes.length))message.writes=[];message.writes.push($root.google.firestore.v1beta1.Write.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{message.transaction=reader.bytes();break}default:reader.skipType(tag&7,long);break}}return message};CommitRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CommitRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.writes!=null&&message.hasOwnProperty("writes")){if(!Array.isArray(message.writes))return"writes: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.CommitRequest;if(object.database!=null)message.database=String(object.database);if(object.writes){if(!Array.isArray(object.writes))throw TypeError(".google.firestore.v1beta1.CommitRequest.writes: array expected");message.writes=[];for(var i=0;i=0)message.transaction=object.transaction;return message};CommitRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.writes=[];if(options.defaults){object.database="";if(options.bytes===String)object.transaction="";else{object.transaction=[];if(options.bytes!==Array)object.transaction=$util.newBuffer(object.transaction)}}if(message.database!=null&&message.hasOwnProperty("database"))object.database=message.database;if(message.writes&&message.writes.length){object.writes=[];for(var j=0;j$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.CommitResponse;while(reader.pos>>3){case 1:{if(!(message.writeResults&&message.writeResults.length))message.writeResults=[];message.writeResults.push($root.google.firestore.v1beta1.WriteResult.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.commitTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};CommitResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CommitResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.writeResults!=null&&message.hasOwnProperty("writeResults")){if(!Array.isArray(message.writeResults))return"writeResults: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.CommitResponse;if(object.writeResults){if(!Array.isArray(object.writeResults))throw TypeError(".google.firestore.v1beta1.CommitResponse.writeResults: array expected");message.writeResults=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.RollbackRequest;while(reader.pos>>3){case 1:{message.database=reader.string();break}case 2:{message.transaction=reader.bytes();break}default:reader.skipType(tag&7,long);break}}return message};RollbackRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RollbackRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.transaction!=null&&message.hasOwnProperty("transaction"))if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected";return null};RollbackRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.RollbackRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.RollbackRequest;if(object.database!=null)message.database=String(object.database);if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;return message};RollbackRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.database="";if(options.bytes===String)object.transaction="";else{object.transaction=[];if(options.bytes!==Array)object.transaction=$util.newBuffer(object.transaction)}}if(message.database!=null&&message.hasOwnProperty("database"))object.database=message.database;if(message.transaction!=null&&message.hasOwnProperty("transaction"))object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;return object};RollbackRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RollbackRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.RollbackRequest"};return RollbackRequest}();v1beta1.RunQueryRequest=function(){function RunQueryRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.RunQueryRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.structuredQuery=$root.google.firestore.v1beta1.StructuredQuery.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.transaction=reader.bytes();break}case 6:{message.newTransaction=$root.google.firestore.v1beta1.TransactionOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RunQueryRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RunQueryRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.structuredQuery!=null&&message.hasOwnProperty("structuredQuery")){properties.queryType=1;{var error=$root.google.firestore.v1beta1.StructuredQuery.verify(message.structuredQuery,long+1);if(error)return"structuredQuery."+error}}if(message.transaction!=null&&message.hasOwnProperty("transaction")){properties.consistencySelector=1;if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected"}if(message.newTransaction!=null&&message.hasOwnProperty("newTransaction")){if(properties.consistencySelector===1)return"consistencySelector: multiple values";properties.consistencySelector=1;{var error=$root.google.firestore.v1beta1.TransactionOptions.verify(message.newTransaction,long+1);if(error)return"newTransaction."+error}}if(message.readTime!=null&&message.hasOwnProperty("readTime")){if(properties.consistencySelector===1)return"consistencySelector: multiple values";properties.consistencySelector=1;{var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}}return null};RunQueryRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.RunQueryRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.RunQueryRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.structuredQuery!=null){if(typeof object.structuredQuery!=="object")throw TypeError(".google.firestore.v1beta1.RunQueryRequest.structuredQuery: object expected");message.structuredQuery=$root.google.firestore.v1beta1.StructuredQuery.fromObject(object.structuredQuery,long+1)}if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;if(object.newTransaction!=null){if(typeof object.newTransaction!=="object")throw TypeError(".google.firestore.v1beta1.RunQueryRequest.newTransaction: object expected");message.newTransaction=$root.google.firestore.v1beta1.TransactionOptions.fromObject(object.newTransaction,long+1)}if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1beta1.RunQueryRequest.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}return message};RunQueryRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.parent="";if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.structuredQuery!=null&&message.hasOwnProperty("structuredQuery")){object.structuredQuery=$root.google.firestore.v1beta1.StructuredQuery.toObject(message.structuredQuery,options);if(options.oneofs)object.queryType="structuredQuery"}if(message.transaction!=null&&message.hasOwnProperty("transaction")){object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;if(options.oneofs)object.consistencySelector="transaction"}if(message.newTransaction!=null&&message.hasOwnProperty("newTransaction")){object.newTransaction=$root.google.firestore.v1beta1.TransactionOptions.toObject(message.newTransaction,options);if(options.oneofs)object.consistencySelector="newTransaction"}if(message.readTime!=null&&message.hasOwnProperty("readTime")){object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(options.oneofs)object.consistencySelector="readTime"}return object};RunQueryRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RunQueryRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.RunQueryRequest"};return RunQueryRequest}();v1beta1.RunQueryResponse=function(){function RunQueryResponse(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.RunQueryResponse;while(reader.pos>>3){case 2:{message.transaction=reader.bytes();break}case 1:{message.document=$root.google.firestore.v1beta1.Document.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.skippedResults=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};RunQueryResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RunQueryResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.transaction!=null&&message.hasOwnProperty("transaction"))if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected";if(message.document!=null&&message.hasOwnProperty("document")){var error=$root.google.firestore.v1beta1.Document.verify(message.document,long+1);if(error)return"document."+error}if(message.readTime!=null&&message.hasOwnProperty("readTime")){var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}if(message.skippedResults!=null&&message.hasOwnProperty("skippedResults"))if(!$util.isInteger(message.skippedResults))return"skippedResults: integer expected";return null};RunQueryResponse.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.RunQueryResponse)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.RunQueryResponse;if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;if(object.document!=null){if(typeof object.document!=="object")throw TypeError(".google.firestore.v1beta1.RunQueryResponse.document: object expected");message.document=$root.google.firestore.v1beta1.Document.fromObject(object.document,long+1)}if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1beta1.RunQueryResponse.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}if(object.skippedResults!=null)message.skippedResults=object.skippedResults|0;return message};RunQueryResponse.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.document=null;if(options.bytes===String)object.transaction="";else{object.transaction=[];if(options.bytes!==Array)object.transaction=$util.newBuffer(object.transaction)}object.readTime=null;object.skippedResults=0}if(message.document!=null&&message.hasOwnProperty("document"))object.document=$root.google.firestore.v1beta1.Document.toObject(message.document,options);if(message.transaction!=null&&message.hasOwnProperty("transaction"))object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;if(message.readTime!=null&&message.hasOwnProperty("readTime"))object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(message.skippedResults!=null&&message.hasOwnProperty("skippedResults"))object.skippedResults=message.skippedResults;return object};RunQueryResponse.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RunQueryResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.RunQueryResponse"};return RunQueryResponse}();v1beta1.PartitionQueryRequest=function(){function PartitionQueryRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.PartitionQueryRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.structuredQuery=$root.google.firestore.v1beta1.StructuredQuery.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.partitionCount=reader.int64();break}case 4:{message.pageToken=reader.string();break}case 5:{message.pageSize=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};PartitionQueryRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};PartitionQueryRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.structuredQuery!=null&&message.hasOwnProperty("structuredQuery")){properties.queryType=1;{var error=$root.google.firestore.v1beta1.StructuredQuery.verify(message.structuredQuery,long+1);if(error)return"structuredQuery."+error}}if(message.partitionCount!=null&&message.hasOwnProperty("partitionCount"))if(!$util.isInteger(message.partitionCount)&&!(message.partitionCount&&$util.isInteger(message.partitionCount.low)&&$util.isInteger(message.partitionCount.high)))return"partitionCount: integer|Long expected";if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))if(!$util.isString(message.pageToken))return"pageToken: string expected";if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))if(!$util.isInteger(message.pageSize))return"pageSize: integer expected";return null};PartitionQueryRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.PartitionQueryRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.PartitionQueryRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.structuredQuery!=null){if(typeof object.structuredQuery!=="object")throw TypeError(".google.firestore.v1beta1.PartitionQueryRequest.structuredQuery: object expected");message.structuredQuery=$root.google.firestore.v1beta1.StructuredQuery.fromObject(object.structuredQuery,long+1)}if(object.partitionCount!=null)if($util.Long)(message.partitionCount=$util.Long.fromValue(object.partitionCount)).unsigned=false;else if(typeof object.partitionCount==="string")message.partitionCount=parseInt(object.partitionCount,10);else if(typeof object.partitionCount==="number")message.partitionCount=object.partitionCount;else if(typeof object.partitionCount==="object")message.partitionCount=new $util.LongBits(object.partitionCount.low>>>0,object.partitionCount.high>>>0).toNumber();if(object.pageToken!=null)message.pageToken=String(object.pageToken);if(object.pageSize!=null)message.pageSize=object.pageSize|0;return message};PartitionQueryRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";if($util.Long){var long=new $util.Long(0,0,false);object.partitionCount=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.partitionCount=options.longs===String?"0":0;object.pageToken="";object.pageSize=0}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.structuredQuery!=null&&message.hasOwnProperty("structuredQuery")){object.structuredQuery=$root.google.firestore.v1beta1.StructuredQuery.toObject(message.structuredQuery,options);if(options.oneofs)object.queryType="structuredQuery"}if(message.partitionCount!=null&&message.hasOwnProperty("partitionCount"))if(typeof message.partitionCount==="number")object.partitionCount=options.longs===String?String(message.partitionCount):message.partitionCount;else object.partitionCount=options.longs===String?$util.Long.prototype.toString.call(message.partitionCount):options.longs===Number?new $util.LongBits(message.partitionCount.low>>>0,message.partitionCount.high>>>0).toNumber():message.partitionCount;if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))object.pageToken=message.pageToken;if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))object.pageSize=message.pageSize;return object};PartitionQueryRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};PartitionQueryRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.PartitionQueryRequest"};return PartitionQueryRequest}();v1beta1.PartitionQueryResponse=function(){function PartitionQueryResponse(properties){this.partitions=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.PartitionQueryResponse;while(reader.pos>>3){case 1:{if(!(message.partitions&&message.partitions.length))message.partitions=[];message.partitions.push($root.google.firestore.v1beta1.Cursor.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.nextPageToken=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};PartitionQueryResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};PartitionQueryResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.partitions!=null&&message.hasOwnProperty("partitions")){if(!Array.isArray(message.partitions))return"partitions: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.PartitionQueryResponse;if(object.partitions){if(!Array.isArray(object.partitions))throw TypeError(".google.firestore.v1beta1.PartitionQueryResponse.partitions: array expected");message.partitions=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.WriteRequest,key,value;while(reader.pos>>3){case 1:{message.database=reader.string();break}case 2:{message.streamId=reader.string();break}case 3:{if(!(message.writes&&message.writes.length))message.writes=[];message.writes.push($root.google.firestore.v1beta1.Write.decode(reader,reader.uint32(),undefined,long+1));break}case 4:{message.streamToken=reader.bytes();break}case 5:{if(message.labels===$util.emptyObject)message.labels={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.labels,key);message.labels[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};WriteRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};WriteRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.streamId!=null&&message.hasOwnProperty("streamId"))if(!$util.isString(message.streamId))return"streamId: string expected";if(message.writes!=null&&message.hasOwnProperty("writes")){if(!Array.isArray(message.writes))return"writes: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.WriteRequest;if(object.database!=null)message.database=String(object.database);if(object.streamId!=null)message.streamId=String(object.streamId);if(object.writes){if(!Array.isArray(object.writes))throw TypeError(".google.firestore.v1beta1.WriteRequest.writes: array expected");message.writes=[];for(var i=0;i=0)message.streamToken=object.streamToken;if(object.labels){if(typeof object.labels!=="object")throw TypeError(".google.firestore.v1beta1.WriteRequest.labels: object expected");message.labels={};for(var keys=Object.keys(object.labels),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.WriteResponse;while(reader.pos>>3){case 1:{message.streamId=reader.string();break}case 2:{message.streamToken=reader.bytes();break}case 3:{if(!(message.writeResults&&message.writeResults.length))message.writeResults=[];message.writeResults.push($root.google.firestore.v1beta1.WriteResult.decode(reader,reader.uint32(),undefined,long+1));break}case 4:{message.commitTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};WriteResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};WriteResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.streamId!=null&&message.hasOwnProperty("streamId"))if(!$util.isString(message.streamId))return"streamId: string expected";if(message.streamToken!=null&&message.hasOwnProperty("streamToken"))if(!(message.streamToken&&typeof message.streamToken.length==="number"||$util.isString(message.streamToken)))return"streamToken: buffer expected";if(message.writeResults!=null&&message.hasOwnProperty("writeResults")){if(!Array.isArray(message.writeResults))return"writeResults: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.WriteResponse;if(object.streamId!=null)message.streamId=String(object.streamId);if(object.streamToken!=null)if(typeof object.streamToken==="string")$util.base64.decode(object.streamToken,message.streamToken=$util.newBuffer($util.base64.length(object.streamToken)),0);else if(object.streamToken.length>=0)message.streamToken=object.streamToken;if(object.writeResults){if(!Array.isArray(object.writeResults))throw TypeError(".google.firestore.v1beta1.WriteResponse.writeResults: array expected");message.writeResults=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.ListenRequest,key,value;while(reader.pos>>3){case 1:{message.database=reader.string();break}case 2:{message.addTarget=$root.google.firestore.v1beta1.Target.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.removeTarget=reader.int32();break}case 4:{if(message.labels===$util.emptyObject)message.labels={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.labels,key);message.labels[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};ListenRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListenRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.addTarget!=null&&message.hasOwnProperty("addTarget")){properties.targetChange=1;{var error=$root.google.firestore.v1beta1.Target.verify(message.addTarget,long+1);if(error)return"addTarget."+error}}if(message.removeTarget!=null&&message.hasOwnProperty("removeTarget")){if(properties.targetChange===1)return"targetChange: multiple values";properties.targetChange=1;if(!$util.isInteger(message.removeTarget))return"removeTarget: integer expected"}if(message.labels!=null&&message.hasOwnProperty("labels")){if(!$util.isObject(message.labels))return"labels: object expected";var key=Object.keys(message.labels);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.ListenRequest;if(object.database!=null)message.database=String(object.database);if(object.addTarget!=null){if(typeof object.addTarget!=="object")throw TypeError(".google.firestore.v1beta1.ListenRequest.addTarget: object expected");message.addTarget=$root.google.firestore.v1beta1.Target.fromObject(object.addTarget,long+1)}if(object.removeTarget!=null)message.removeTarget=object.removeTarget|0;if(object.labels){if(typeof object.labels!=="object")throw TypeError(".google.firestore.v1beta1.ListenRequest.labels: object expected");message.labels={};for(var keys=Object.keys(object.labels),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.ListenResponse;while(reader.pos>>3){case 2:{message.targetChange=$root.google.firestore.v1beta1.TargetChange.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.documentChange=$root.google.firestore.v1beta1.DocumentChange.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.documentDelete=$root.google.firestore.v1beta1.DocumentDelete.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.documentRemove=$root.google.firestore.v1beta1.DocumentRemove.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.filter=$root.google.firestore.v1beta1.ExistenceFilter.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ListenResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListenResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.targetChange!=null&&message.hasOwnProperty("targetChange")){properties.responseType=1;{var error=$root.google.firestore.v1beta1.TargetChange.verify(message.targetChange,long+1);if(error)return"targetChange."+error}}if(message.documentChange!=null&&message.hasOwnProperty("documentChange")){if(properties.responseType===1)return"responseType: multiple values";properties.responseType=1;{var error=$root.google.firestore.v1beta1.DocumentChange.verify(message.documentChange,long+1);if(error)return"documentChange."+error}}if(message.documentDelete!=null&&message.hasOwnProperty("documentDelete")){if(properties.responseType===1)return"responseType: multiple values";properties.responseType=1;{var error=$root.google.firestore.v1beta1.DocumentDelete.verify(message.documentDelete,long+1);if(error)return"documentDelete."+error}}if(message.documentRemove!=null&&message.hasOwnProperty("documentRemove")){if(properties.responseType===1)return"responseType: multiple values";properties.responseType=1;{var error=$root.google.firestore.v1beta1.DocumentRemove.verify(message.documentRemove,long+1);if(error)return"documentRemove."+error}}if(message.filter!=null&&message.hasOwnProperty("filter")){if(properties.responseType===1)return"responseType: multiple values";properties.responseType=1;{var error=$root.google.firestore.v1beta1.ExistenceFilter.verify(message.filter,long+1);if(error)return"filter."+error}}return null};ListenResponse.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.ListenResponse)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.ListenResponse;if(object.targetChange!=null){if(typeof object.targetChange!=="object")throw TypeError(".google.firestore.v1beta1.ListenResponse.targetChange: object expected");message.targetChange=$root.google.firestore.v1beta1.TargetChange.fromObject(object.targetChange,long+1)}if(object.documentChange!=null){if(typeof object.documentChange!=="object")throw TypeError(".google.firestore.v1beta1.ListenResponse.documentChange: object expected");message.documentChange=$root.google.firestore.v1beta1.DocumentChange.fromObject(object.documentChange,long+1)}if(object.documentDelete!=null){if(typeof object.documentDelete!=="object")throw TypeError(".google.firestore.v1beta1.ListenResponse.documentDelete: object expected");message.documentDelete=$root.google.firestore.v1beta1.DocumentDelete.fromObject(object.documentDelete,long+1)}if(object.documentRemove!=null){if(typeof object.documentRemove!=="object")throw TypeError(".google.firestore.v1beta1.ListenResponse.documentRemove: object expected");message.documentRemove=$root.google.firestore.v1beta1.DocumentRemove.fromObject(object.documentRemove,long+1)}if(object.filter!=null){if(typeof object.filter!=="object")throw TypeError(".google.firestore.v1beta1.ListenResponse.filter: object expected");message.filter=$root.google.firestore.v1beta1.ExistenceFilter.fromObject(object.filter,long+1)}return message};ListenResponse.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.targetChange!=null&&message.hasOwnProperty("targetChange")){object.targetChange=$root.google.firestore.v1beta1.TargetChange.toObject(message.targetChange,options);if(options.oneofs)object.responseType="targetChange"}if(message.documentChange!=null&&message.hasOwnProperty("documentChange")){object.documentChange=$root.google.firestore.v1beta1.DocumentChange.toObject(message.documentChange,options);if(options.oneofs)object.responseType="documentChange"}if(message.documentDelete!=null&&message.hasOwnProperty("documentDelete")){object.documentDelete=$root.google.firestore.v1beta1.DocumentDelete.toObject(message.documentDelete,options);if(options.oneofs)object.responseType="documentDelete"}if(message.filter!=null&&message.hasOwnProperty("filter")){object.filter=$root.google.firestore.v1beta1.ExistenceFilter.toObject(message.filter,options);if(options.oneofs)object.responseType="filter"}if(message.documentRemove!=null&&message.hasOwnProperty("documentRemove")){object.documentRemove=$root.google.firestore.v1beta1.DocumentRemove.toObject(message.documentRemove,options);if(options.oneofs)object.responseType="documentRemove"}return object};ListenResponse.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ListenResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.ListenResponse"};return ListenResponse}();v1beta1.Target=function(){function Target(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.Target;while(reader.pos>>3){case 2:{message.query=$root.google.firestore.v1beta1.Target.QueryTarget.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.documents=$root.google.firestore.v1beta1.Target.DocumentsTarget.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.resumeToken=reader.bytes();break}case 11:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.targetId=reader.int32();break}case 6:{message.once=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};Target.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Target.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.query!=null&&message.hasOwnProperty("query")){properties.targetType=1;{var error=$root.google.firestore.v1beta1.Target.QueryTarget.verify(message.query,long+1);if(error)return"query."+error}}if(message.documents!=null&&message.hasOwnProperty("documents")){if(properties.targetType===1)return"targetType: multiple values";properties.targetType=1;{var error=$root.google.firestore.v1beta1.Target.DocumentsTarget.verify(message.documents,long+1);if(error)return"documents."+error}}if(message.resumeToken!=null&&message.hasOwnProperty("resumeToken")){properties.resumeType=1;if(!(message.resumeToken&&typeof message.resumeToken.length==="number"||$util.isString(message.resumeToken)))return"resumeToken: buffer expected"}if(message.readTime!=null&&message.hasOwnProperty("readTime")){if(properties.resumeType===1)return"resumeType: multiple values";properties.resumeType=1;{var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}}if(message.targetId!=null&&message.hasOwnProperty("targetId"))if(!$util.isInteger(message.targetId))return"targetId: integer expected";if(message.once!=null&&message.hasOwnProperty("once"))if(typeof message.once!=="boolean")return"once: boolean expected";return null};Target.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.Target)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.Target;if(object.query!=null){if(typeof object.query!=="object")throw TypeError(".google.firestore.v1beta1.Target.query: object expected");message.query=$root.google.firestore.v1beta1.Target.QueryTarget.fromObject(object.query,long+1)}if(object.documents!=null){if(typeof object.documents!=="object")throw TypeError(".google.firestore.v1beta1.Target.documents: object expected");message.documents=$root.google.firestore.v1beta1.Target.DocumentsTarget.fromObject(object.documents,long+1)}if(object.resumeToken!=null)if(typeof object.resumeToken==="string")$util.base64.decode(object.resumeToken,message.resumeToken=$util.newBuffer($util.base64.length(object.resumeToken)),0);else if(object.resumeToken.length>=0)message.resumeToken=object.resumeToken;if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1beta1.Target.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}if(object.targetId!=null)message.targetId=object.targetId|0;if(object.once!=null)message.once=Boolean(object.once);return message};Target.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.targetId=0;object.once=false}if(message.query!=null&&message.hasOwnProperty("query")){object.query=$root.google.firestore.v1beta1.Target.QueryTarget.toObject(message.query,options);if(options.oneofs)object.targetType="query"}if(message.documents!=null&&message.hasOwnProperty("documents")){object.documents=$root.google.firestore.v1beta1.Target.DocumentsTarget.toObject(message.documents,options);if(options.oneofs)object.targetType="documents"}if(message.resumeToken!=null&&message.hasOwnProperty("resumeToken")){object.resumeToken=options.bytes===String?$util.base64.encode(message.resumeToken,0,message.resumeToken.length):options.bytes===Array?Array.prototype.slice.call(message.resumeToken):message.resumeToken;if(options.oneofs)object.resumeType="resumeToken"}if(message.targetId!=null&&message.hasOwnProperty("targetId"))object.targetId=message.targetId;if(message.once!=null&&message.hasOwnProperty("once"))object.once=message.once;if(message.readTime!=null&&message.hasOwnProperty("readTime")){object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(options.oneofs)object.resumeType="readTime"}return object};Target.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Target.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.Target"};Target.DocumentsTarget=function(){function DocumentsTarget(properties){this.documents=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.Target.DocumentsTarget;while(reader.pos>>3){case 2:{if(!(message.documents&&message.documents.length))message.documents=[];message.documents.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};DocumentsTarget.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DocumentsTarget.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.documents!=null&&message.hasOwnProperty("documents")){if(!Array.isArray(message.documents))return"documents: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.Target.DocumentsTarget;if(object.documents){if(!Array.isArray(object.documents))throw TypeError(".google.firestore.v1beta1.Target.DocumentsTarget.documents: array expected");message.documents=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.Target.QueryTarget;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.structuredQuery=$root.google.firestore.v1beta1.StructuredQuery.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};QueryTarget.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};QueryTarget.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.structuredQuery!=null&&message.hasOwnProperty("structuredQuery")){properties.queryType=1;{var error=$root.google.firestore.v1beta1.StructuredQuery.verify(message.structuredQuery,long+1);if(error)return"structuredQuery."+error}}return null};QueryTarget.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.Target.QueryTarget)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.Target.QueryTarget;if(object.parent!=null)message.parent=String(object.parent);if(object.structuredQuery!=null){if(typeof object.structuredQuery!=="object")throw TypeError(".google.firestore.v1beta1.Target.QueryTarget.structuredQuery: object expected");message.structuredQuery=$root.google.firestore.v1beta1.StructuredQuery.fromObject(object.structuredQuery,long+1)}return message};QueryTarget.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.parent="";if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.structuredQuery!=null&&message.hasOwnProperty("structuredQuery")){object.structuredQuery=$root.google.firestore.v1beta1.StructuredQuery.toObject(message.structuredQuery,options);if(options.oneofs)object.queryType="structuredQuery"}return object};QueryTarget.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};QueryTarget.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.Target.QueryTarget"};return QueryTarget}();return Target}();v1beta1.TargetChange=function(){function TargetChange(properties){this.targetIds=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.TargetChange;while(reader.pos>>3){case 1:{message.targetChangeType=reader.int32();break}case 2:{if(!(message.targetIds&&message.targetIds.length))message.targetIds=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos$util.recursionLimit)return"maximum nesting depth exceeded";if(message.targetChangeType!=null&&message.hasOwnProperty("targetChangeType"))switch(message.targetChangeType){default:return"targetChangeType: enum value expected";case 0:case 1:case 2:case 3:case 4:break}if(message.targetIds!=null&&message.hasOwnProperty("targetIds")){if(!Array.isArray(message.targetIds))return"targetIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.TargetChange;switch(object.targetChangeType){default:if(typeof object.targetChangeType==="number"){message.targetChangeType=object.targetChangeType;break}break;case"NO_CHANGE":case 0:message.targetChangeType=0;break;case"ADD":case 1:message.targetChangeType=1;break;case"REMOVE":case 2:message.targetChangeType=2;break;case"CURRENT":case 3:message.targetChangeType=3;break;case"RESET":case 4:message.targetChangeType=4;break}if(object.targetIds){if(!Array.isArray(object.targetIds))throw TypeError(".google.firestore.v1beta1.TargetChange.targetIds: array expected");message.targetIds=[];for(var i=0;i=0)message.resumeToken=object.resumeToken;if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1beta1.TargetChange.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}return message};TargetChange.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.targetIds=[];if(options.defaults){object.targetChangeType=options.enums===String?"NO_CHANGE":0;object.cause=null;if(options.bytes===String)object.resumeToken="";else{object.resumeToken=[];if(options.bytes!==Array)object.resumeToken=$util.newBuffer(object.resumeToken)}object.readTime=null}if(message.targetChangeType!=null&&message.hasOwnProperty("targetChangeType"))object.targetChangeType=options.enums===String?$root.google.firestore.v1beta1.TargetChange.TargetChangeType[message.targetChangeType]===undefined?message.targetChangeType:$root.google.firestore.v1beta1.TargetChange.TargetChangeType[message.targetChangeType]:message.targetChangeType;if(message.targetIds&&message.targetIds.length){object.targetIds=[];for(var j=0;j$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.ListCollectionIdsRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.pageSize=reader.int32();break}case 3:{message.pageToken=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ListCollectionIdsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListCollectionIdsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))if(!$util.isInteger(message.pageSize))return"pageSize: integer expected";if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))if(!$util.isString(message.pageToken))return"pageToken: string expected";return null};ListCollectionIdsRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.ListCollectionIdsRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.ListCollectionIdsRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.pageSize!=null)message.pageSize=object.pageSize|0;if(object.pageToken!=null)message.pageToken=String(object.pageToken);return message};ListCollectionIdsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.pageSize=0;object.pageToken=""}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))object.pageSize=message.pageSize;if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))object.pageToken=message.pageToken;return object};ListCollectionIdsRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ListCollectionIdsRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.ListCollectionIdsRequest"};return ListCollectionIdsRequest}();v1beta1.ListCollectionIdsResponse=function(){function ListCollectionIdsResponse(properties){this.collectionIds=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.ListCollectionIdsResponse;while(reader.pos>>3){case 1:{if(!(message.collectionIds&&message.collectionIds.length))message.collectionIds=[];message.collectionIds.push(reader.string());break}case 2:{message.nextPageToken=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ListCollectionIdsResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListCollectionIdsResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.collectionIds!=null&&message.hasOwnProperty("collectionIds")){if(!Array.isArray(message.collectionIds))return"collectionIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.ListCollectionIdsResponse;if(object.collectionIds){if(!Array.isArray(object.collectionIds))throw TypeError(".google.firestore.v1beta1.ListCollectionIdsResponse.collectionIds: array expected");message.collectionIds=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.BatchWriteRequest,key,value;while(reader.pos>>3){case 1:{message.database=reader.string();break}case 2:{if(!(message.writes&&message.writes.length))message.writes=[];message.writes.push($root.google.firestore.v1beta1.Write.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{if(message.labels===$util.emptyObject)message.labels={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.labels,key);message.labels[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};BatchWriteRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BatchWriteRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.writes!=null&&message.hasOwnProperty("writes")){if(!Array.isArray(message.writes))return"writes: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.BatchWriteRequest;if(object.database!=null)message.database=String(object.database);if(object.writes){if(!Array.isArray(object.writes))throw TypeError(".google.firestore.v1beta1.BatchWriteRequest.writes: array expected");message.writes=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.BatchWriteResponse;while(reader.pos>>3){case 1:{if(!(message.writeResults&&message.writeResults.length))message.writeResults=[];message.writeResults.push($root.google.firestore.v1beta1.WriteResult.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{if(!(message.status&&message.status.length))message.status=[];message.status.push($root.google.rpc.Status.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};BatchWriteResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BatchWriteResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.writeResults!=null&&message.hasOwnProperty("writeResults")){if(!Array.isArray(message.writeResults))return"writeResults: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.BatchWriteResponse;if(object.writeResults){if(!Array.isArray(object.writeResults))throw TypeError(".google.firestore.v1beta1.BatchWriteResponse.writeResults: array expected");message.writeResults=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.StructuredQuery;while(reader.pos>>3){case 1:{message.select=$root.google.firestore.v1beta1.StructuredQuery.Projection.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{if(!(message.from&&message.from.length))message.from=[];message.from.push($root.google.firestore.v1beta1.StructuredQuery.CollectionSelector.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{message.where=$root.google.firestore.v1beta1.StructuredQuery.Filter.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{if(!(message.orderBy&&message.orderBy.length))message.orderBy=[];message.orderBy.push($root.google.firestore.v1beta1.StructuredQuery.Order.decode(reader,reader.uint32(),undefined,long+1));break}case 7:{message.startAt=$root.google.firestore.v1beta1.Cursor.decode(reader,reader.uint32(),undefined,long+1);break}case 8:{message.endAt=$root.google.firestore.v1beta1.Cursor.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.offset=reader.int32();break}case 5:{message.limit=$root.google.protobuf.Int32Value.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};StructuredQuery.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};StructuredQuery.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.select!=null&&message.hasOwnProperty("select")){var error=$root.google.firestore.v1beta1.StructuredQuery.Projection.verify(message.select,long+1);if(error)return"select."+error}if(message.from!=null&&message.hasOwnProperty("from")){if(!Array.isArray(message.from))return"from: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.StructuredQuery;if(object.select!=null){if(typeof object.select!=="object")throw TypeError(".google.firestore.v1beta1.StructuredQuery.select: object expected");message.select=$root.google.firestore.v1beta1.StructuredQuery.Projection.fromObject(object.select,long+1)}if(object.from){if(!Array.isArray(object.from))throw TypeError(".google.firestore.v1beta1.StructuredQuery.from: array expected");message.from=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.StructuredQuery.CollectionSelector;while(reader.pos>>3){case 2:{message.collectionId=reader.string();break}case 3:{message.allDescendants=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};CollectionSelector.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CollectionSelector.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.collectionId!=null&&message.hasOwnProperty("collectionId"))if(!$util.isString(message.collectionId))return"collectionId: string expected";if(message.allDescendants!=null&&message.hasOwnProperty("allDescendants"))if(typeof message.allDescendants!=="boolean")return"allDescendants: boolean expected";return null};CollectionSelector.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.StructuredQuery.CollectionSelector)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.StructuredQuery.CollectionSelector;if(object.collectionId!=null)message.collectionId=String(object.collectionId);if(object.allDescendants!=null)message.allDescendants=Boolean(object.allDescendants);return message};CollectionSelector.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.collectionId="";object.allDescendants=false}if(message.collectionId!=null&&message.hasOwnProperty("collectionId"))object.collectionId=message.collectionId;if(message.allDescendants!=null&&message.hasOwnProperty("allDescendants"))object.allDescendants=message.allDescendants;return object};CollectionSelector.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CollectionSelector.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.StructuredQuery.CollectionSelector"};return CollectionSelector}();StructuredQuery.Filter=function(){function Filter(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.StructuredQuery.Filter;while(reader.pos>>3){case 1:{message.compositeFilter=$root.google.firestore.v1beta1.StructuredQuery.CompositeFilter.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.fieldFilter=$root.google.firestore.v1beta1.StructuredQuery.FieldFilter.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.unaryFilter=$root.google.firestore.v1beta1.StructuredQuery.UnaryFilter.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Filter.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Filter.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.compositeFilter!=null&&message.hasOwnProperty("compositeFilter")){properties.filterType=1;{var error=$root.google.firestore.v1beta1.StructuredQuery.CompositeFilter.verify(message.compositeFilter,long+1);if(error)return"compositeFilter."+error}}if(message.fieldFilter!=null&&message.hasOwnProperty("fieldFilter")){if(properties.filterType===1)return"filterType: multiple values";properties.filterType=1;{var error=$root.google.firestore.v1beta1.StructuredQuery.FieldFilter.verify(message.fieldFilter,long+1);if(error)return"fieldFilter."+error}}if(message.unaryFilter!=null&&message.hasOwnProperty("unaryFilter")){if(properties.filterType===1)return"filterType: multiple values";properties.filterType=1;{var error=$root.google.firestore.v1beta1.StructuredQuery.UnaryFilter.verify(message.unaryFilter,long+1);if(error)return"unaryFilter."+error}}return null};Filter.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.StructuredQuery.Filter)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.StructuredQuery.Filter;if(object.compositeFilter!=null){if(typeof object.compositeFilter!=="object")throw TypeError(".google.firestore.v1beta1.StructuredQuery.Filter.compositeFilter: object expected");message.compositeFilter=$root.google.firestore.v1beta1.StructuredQuery.CompositeFilter.fromObject(object.compositeFilter,long+1)}if(object.fieldFilter!=null){if(typeof object.fieldFilter!=="object")throw TypeError(".google.firestore.v1beta1.StructuredQuery.Filter.fieldFilter: object expected");message.fieldFilter=$root.google.firestore.v1beta1.StructuredQuery.FieldFilter.fromObject(object.fieldFilter,long+1)}if(object.unaryFilter!=null){if(typeof object.unaryFilter!=="object")throw TypeError(".google.firestore.v1beta1.StructuredQuery.Filter.unaryFilter: object expected");message.unaryFilter=$root.google.firestore.v1beta1.StructuredQuery.UnaryFilter.fromObject(object.unaryFilter,long+1)}return message};Filter.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.compositeFilter!=null&&message.hasOwnProperty("compositeFilter")){object.compositeFilter=$root.google.firestore.v1beta1.StructuredQuery.CompositeFilter.toObject(message.compositeFilter,options);if(options.oneofs)object.filterType="compositeFilter"}if(message.fieldFilter!=null&&message.hasOwnProperty("fieldFilter")){object.fieldFilter=$root.google.firestore.v1beta1.StructuredQuery.FieldFilter.toObject(message.fieldFilter,options);if(options.oneofs)object.filterType="fieldFilter"}if(message.unaryFilter!=null&&message.hasOwnProperty("unaryFilter")){object.unaryFilter=$root.google.firestore.v1beta1.StructuredQuery.UnaryFilter.toObject(message.unaryFilter,options);if(options.oneofs)object.filterType="unaryFilter"}return object};Filter.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Filter.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.StructuredQuery.Filter"};return Filter}();StructuredQuery.CompositeFilter=function(){function CompositeFilter(properties){this.filters=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.StructuredQuery.CompositeFilter;while(reader.pos>>3){case 1:{message.op=reader.int32();break}case 2:{if(!(message.filters&&message.filters.length))message.filters=[];message.filters.push($root.google.firestore.v1beta1.StructuredQuery.Filter.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};CompositeFilter.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CompositeFilter.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.op!=null&&message.hasOwnProperty("op"))switch(message.op){default:return"op: enum value expected";case 0:case 1:break}if(message.filters!=null&&message.hasOwnProperty("filters")){if(!Array.isArray(message.filters))return"filters: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.StructuredQuery.CompositeFilter;switch(object.op){default:if(typeof object.op==="number"){message.op=object.op;break}break;case"OPERATOR_UNSPECIFIED":case 0:message.op=0;break;case"AND":case 1:message.op=1;break}if(object.filters){if(!Array.isArray(object.filters))throw TypeError(".google.firestore.v1beta1.StructuredQuery.CompositeFilter.filters: array expected");message.filters=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.StructuredQuery.FieldFilter;while(reader.pos>>3){case 1:{message.field=$root.google.firestore.v1beta1.StructuredQuery.FieldReference.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.op=reader.int32();break}case 3:{message.value=$root.google.firestore.v1beta1.Value.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};FieldFilter.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FieldFilter.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.field!=null&&message.hasOwnProperty("field")){var error=$root.google.firestore.v1beta1.StructuredQuery.FieldReference.verify(message.field,long+1);if(error)return"field."+error}if(message.op!=null&&message.hasOwnProperty("op"))switch(message.op){default:return"op: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:break}if(message.value!=null&&message.hasOwnProperty("value")){var error=$root.google.firestore.v1beta1.Value.verify(message.value,long+1);if(error)return"value."+error}return null};FieldFilter.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.StructuredQuery.FieldFilter)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.StructuredQuery.FieldFilter;if(object.field!=null){if(typeof object.field!=="object")throw TypeError(".google.firestore.v1beta1.StructuredQuery.FieldFilter.field: object expected");message.field=$root.google.firestore.v1beta1.StructuredQuery.FieldReference.fromObject(object.field,long+1)}switch(object.op){default:if(typeof object.op==="number"){message.op=object.op;break}break;case"OPERATOR_UNSPECIFIED":case 0:message.op=0;break;case"LESS_THAN":case 1:message.op=1;break;case"LESS_THAN_OR_EQUAL":case 2:message.op=2;break;case"GREATER_THAN":case 3:message.op=3;break;case"GREATER_THAN_OR_EQUAL":case 4:message.op=4;break;case"EQUAL":case 5:message.op=5;break;case"NOT_EQUAL":case 6:message.op=6;break;case"ARRAY_CONTAINS":case 7:message.op=7;break;case"IN":case 8:message.op=8;break;case"ARRAY_CONTAINS_ANY":case 9:message.op=9;break;case"NOT_IN":case 10:message.op=10;break}if(object.value!=null){if(typeof object.value!=="object")throw TypeError(".google.firestore.v1beta1.StructuredQuery.FieldFilter.value: object expected");message.value=$root.google.firestore.v1beta1.Value.fromObject(object.value,long+1)}return message};FieldFilter.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.field=null;object.op=options.enums===String?"OPERATOR_UNSPECIFIED":0;object.value=null}if(message.field!=null&&message.hasOwnProperty("field"))object.field=$root.google.firestore.v1beta1.StructuredQuery.FieldReference.toObject(message.field,options);if(message.op!=null&&message.hasOwnProperty("op"))object.op=options.enums===String?$root.google.firestore.v1beta1.StructuredQuery.FieldFilter.Operator[message.op]===undefined?message.op:$root.google.firestore.v1beta1.StructuredQuery.FieldFilter.Operator[message.op]:message.op;if(message.value!=null&&message.hasOwnProperty("value"))object.value=$root.google.firestore.v1beta1.Value.toObject(message.value,options);return object};FieldFilter.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FieldFilter.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.StructuredQuery.FieldFilter"};FieldFilter.Operator=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="OPERATOR_UNSPECIFIED"]=0;values[valuesById[1]="LESS_THAN"]=1;values[valuesById[2]="LESS_THAN_OR_EQUAL"]=2;values[valuesById[3]="GREATER_THAN"]=3;values[valuesById[4]="GREATER_THAN_OR_EQUAL"]=4;values[valuesById[5]="EQUAL"]=5;values[valuesById[6]="NOT_EQUAL"]=6;values[valuesById[7]="ARRAY_CONTAINS"]=7;values[valuesById[8]="IN"]=8;values[valuesById[9]="ARRAY_CONTAINS_ANY"]=9;values[valuesById[10]="NOT_IN"]=10;return values}();return FieldFilter}();StructuredQuery.UnaryFilter=function(){function UnaryFilter(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.StructuredQuery.UnaryFilter;while(reader.pos>>3){case 1:{message.op=reader.int32();break}case 2:{message.field=$root.google.firestore.v1beta1.StructuredQuery.FieldReference.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};UnaryFilter.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UnaryFilter.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.op!=null&&message.hasOwnProperty("op"))switch(message.op){default:return"op: enum value expected";case 0:case 2:case 3:case 4:case 5:break}if(message.field!=null&&message.hasOwnProperty("field")){properties.operandType=1;{var error=$root.google.firestore.v1beta1.StructuredQuery.FieldReference.verify(message.field,long+1);if(error)return"field."+error}}return null};UnaryFilter.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.StructuredQuery.UnaryFilter)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.StructuredQuery.UnaryFilter;switch(object.op){default:if(typeof object.op==="number"){message.op=object.op;break}break;case"OPERATOR_UNSPECIFIED":case 0:message.op=0;break;case"IS_NAN":case 2:message.op=2;break;case"IS_NULL":case 3:message.op=3;break;case"IS_NOT_NAN":case 4:message.op=4;break;case"IS_NOT_NULL":case 5:message.op=5;break}if(object.field!=null){if(typeof object.field!=="object")throw TypeError(".google.firestore.v1beta1.StructuredQuery.UnaryFilter.field: object expected");message.field=$root.google.firestore.v1beta1.StructuredQuery.FieldReference.fromObject(object.field,long+1)}return message};UnaryFilter.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.op=options.enums===String?"OPERATOR_UNSPECIFIED":0;if(message.op!=null&&message.hasOwnProperty("op"))object.op=options.enums===String?$root.google.firestore.v1beta1.StructuredQuery.UnaryFilter.Operator[message.op]===undefined?message.op:$root.google.firestore.v1beta1.StructuredQuery.UnaryFilter.Operator[message.op]:message.op;if(message.field!=null&&message.hasOwnProperty("field")){object.field=$root.google.firestore.v1beta1.StructuredQuery.FieldReference.toObject(message.field,options);if(options.oneofs)object.operandType="field"}return object};UnaryFilter.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UnaryFilter.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.StructuredQuery.UnaryFilter"};UnaryFilter.Operator=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="OPERATOR_UNSPECIFIED"]=0;values[valuesById[2]="IS_NAN"]=2;values[valuesById[3]="IS_NULL"]=3;values[valuesById[4]="IS_NOT_NAN"]=4;values[valuesById[5]="IS_NOT_NULL"]=5;return values}();return UnaryFilter}();StructuredQuery.FieldReference=function(){function FieldReference(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.StructuredQuery.FieldReference;while(reader.pos>>3){case 2:{message.fieldPath=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};FieldReference.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FieldReference.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.fieldPath!=null&&message.hasOwnProperty("fieldPath"))if(!$util.isString(message.fieldPath))return"fieldPath: string expected";return null};FieldReference.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.StructuredQuery.FieldReference)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.StructuredQuery.FieldReference;if(object.fieldPath!=null)message.fieldPath=String(object.fieldPath);return message};FieldReference.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.fieldPath="";if(message.fieldPath!=null&&message.hasOwnProperty("fieldPath"))object.fieldPath=message.fieldPath;return object};FieldReference.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FieldReference.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.StructuredQuery.FieldReference"};return FieldReference}();StructuredQuery.Order=function(){function Order(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.StructuredQuery.Order;while(reader.pos>>3){case 1:{message.field=$root.google.firestore.v1beta1.StructuredQuery.FieldReference.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.direction=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};Order.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Order.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.field!=null&&message.hasOwnProperty("field")){var error=$root.google.firestore.v1beta1.StructuredQuery.FieldReference.verify(message.field,long+1);if(error)return"field."+error}if(message.direction!=null&&message.hasOwnProperty("direction"))switch(message.direction){default:return"direction: enum value expected";case 0:case 1:case 2:break}return null};Order.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.StructuredQuery.Order)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.StructuredQuery.Order;if(object.field!=null){if(typeof object.field!=="object")throw TypeError(".google.firestore.v1beta1.StructuredQuery.Order.field: object expected");message.field=$root.google.firestore.v1beta1.StructuredQuery.FieldReference.fromObject(object.field,long+1)}switch(object.direction){default:if(typeof object.direction==="number"){message.direction=object.direction;break}break;case"DIRECTION_UNSPECIFIED":case 0:message.direction=0;break;case"ASCENDING":case 1:message.direction=1;break;case"DESCENDING":case 2:message.direction=2;break}return message};Order.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.field=null;object.direction=options.enums===String?"DIRECTION_UNSPECIFIED":0}if(message.field!=null&&message.hasOwnProperty("field"))object.field=$root.google.firestore.v1beta1.StructuredQuery.FieldReference.toObject(message.field,options);if(message.direction!=null&&message.hasOwnProperty("direction"))object.direction=options.enums===String?$root.google.firestore.v1beta1.StructuredQuery.Direction[message.direction]===undefined?message.direction:$root.google.firestore.v1beta1.StructuredQuery.Direction[message.direction]:message.direction;return object};Order.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Order.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.StructuredQuery.Order"};return Order}();StructuredQuery.Projection=function(){function Projection(properties){this.fields=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.StructuredQuery.Projection;while(reader.pos>>3){case 2:{if(!(message.fields&&message.fields.length))message.fields=[];message.fields.push($root.google.firestore.v1beta1.StructuredQuery.FieldReference.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};Projection.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Projection.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.fields!=null&&message.hasOwnProperty("fields")){if(!Array.isArray(message.fields))return"fields: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.StructuredQuery.Projection;if(object.fields){if(!Array.isArray(object.fields))throw TypeError(".google.firestore.v1beta1.StructuredQuery.Projection.fields: array expected");message.fields=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.Cursor;while(reader.pos>>3){case 1:{if(!(message.values&&message.values.length))message.values=[];message.values.push($root.google.firestore.v1beta1.Value.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.before=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};Cursor.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Cursor.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.values!=null&&message.hasOwnProperty("values")){if(!Array.isArray(message.values))return"values: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.Cursor;if(object.values){if(!Array.isArray(object.values))throw TypeError(".google.firestore.v1beta1.Cursor.values: array expected");message.values=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.Write;while(reader.pos>>3){case 1:{message.update=$root.google.firestore.v1beta1.Document.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message["delete"]=reader.string();break}case 6:{message.transform=$root.google.firestore.v1beta1.DocumentTransform.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.updateMask=$root.google.firestore.v1beta1.DocumentMask.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{if(!(message.updateTransforms&&message.updateTransforms.length))message.updateTransforms=[];message.updateTransforms.push($root.google.firestore.v1beta1.DocumentTransform.FieldTransform.decode(reader,reader.uint32(),undefined,long+1));break}case 4:{message.currentDocument=$root.google.firestore.v1beta1.Precondition.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Write.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Write.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.update!=null&&message.hasOwnProperty("update")){properties.operation=1;{var error=$root.google.firestore.v1beta1.Document.verify(message.update,long+1);if(error)return"update."+error}}if(message["delete"]!=null&&message.hasOwnProperty("delete")){if(properties.operation===1)return"operation: multiple values";properties.operation=1;if(!$util.isString(message["delete"]))return"delete: string expected"}if(message.transform!=null&&message.hasOwnProperty("transform")){if(properties.operation===1)return"operation: multiple values";properties.operation=1;{var error=$root.google.firestore.v1beta1.DocumentTransform.verify(message.transform,long+1);if(error)return"transform."+error}}if(message.updateMask!=null&&message.hasOwnProperty("updateMask")){var error=$root.google.firestore.v1beta1.DocumentMask.verify(message.updateMask,long+1);if(error)return"updateMask."+error}if(message.updateTransforms!=null&&message.hasOwnProperty("updateTransforms")){if(!Array.isArray(message.updateTransforms))return"updateTransforms: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.Write;if(object.update!=null){if(typeof object.update!=="object")throw TypeError(".google.firestore.v1beta1.Write.update: object expected");message.update=$root.google.firestore.v1beta1.Document.fromObject(object.update,long+1)}if(object["delete"]!=null)message["delete"]=String(object["delete"]);if(object.transform!=null){if(typeof object.transform!=="object")throw TypeError(".google.firestore.v1beta1.Write.transform: object expected");message.transform=$root.google.firestore.v1beta1.DocumentTransform.fromObject(object.transform,long+1)}if(object.updateMask!=null){if(typeof object.updateMask!=="object")throw TypeError(".google.firestore.v1beta1.Write.updateMask: object expected");message.updateMask=$root.google.firestore.v1beta1.DocumentMask.fromObject(object.updateMask,long+1)}if(object.updateTransforms){if(!Array.isArray(object.updateTransforms))throw TypeError(".google.firestore.v1beta1.Write.updateTransforms: array expected");message.updateTransforms=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.DocumentTransform;while(reader.pos>>3){case 1:{message.document=reader.string();break}case 2:{if(!(message.fieldTransforms&&message.fieldTransforms.length))message.fieldTransforms=[];message.fieldTransforms.push($root.google.firestore.v1beta1.DocumentTransform.FieldTransform.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};DocumentTransform.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DocumentTransform.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.document!=null&&message.hasOwnProperty("document"))if(!$util.isString(message.document))return"document: string expected";if(message.fieldTransforms!=null&&message.hasOwnProperty("fieldTransforms")){if(!Array.isArray(message.fieldTransforms))return"fieldTransforms: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.DocumentTransform;if(object.document!=null)message.document=String(object.document);if(object.fieldTransforms){if(!Array.isArray(object.fieldTransforms))throw TypeError(".google.firestore.v1beta1.DocumentTransform.fieldTransforms: array expected");message.fieldTransforms=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.DocumentTransform.FieldTransform;while(reader.pos>>3){case 1:{message.fieldPath=reader.string();break}case 2:{message.setToServerValue=reader.int32();break}case 3:{message.increment=$root.google.firestore.v1beta1.Value.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.maximum=$root.google.firestore.v1beta1.Value.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.minimum=$root.google.firestore.v1beta1.Value.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.appendMissingElements=$root.google.firestore.v1beta1.ArrayValue.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.removeAllFromArray=$root.google.firestore.v1beta1.ArrayValue.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};FieldTransform.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FieldTransform.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.fieldPath!=null&&message.hasOwnProperty("fieldPath"))if(!$util.isString(message.fieldPath))return"fieldPath: string expected";if(message.setToServerValue!=null&&message.hasOwnProperty("setToServerValue")){properties.transformType=1;switch(message.setToServerValue){default:return"setToServerValue: enum value expected";case 0:case 1:break}}if(message.increment!=null&&message.hasOwnProperty("increment")){if(properties.transformType===1)return"transformType: multiple values";properties.transformType=1;{var error=$root.google.firestore.v1beta1.Value.verify(message.increment,long+1);if(error)return"increment."+error}}if(message.maximum!=null&&message.hasOwnProperty("maximum")){if(properties.transformType===1)return"transformType: multiple values";properties.transformType=1;{var error=$root.google.firestore.v1beta1.Value.verify(message.maximum,long+1);if(error)return"maximum."+error}}if(message.minimum!=null&&message.hasOwnProperty("minimum")){if(properties.transformType===1)return"transformType: multiple values";properties.transformType=1;{var error=$root.google.firestore.v1beta1.Value.verify(message.minimum,long+1);if(error)return"minimum."+error}}if(message.appendMissingElements!=null&&message.hasOwnProperty("appendMissingElements")){if(properties.transformType===1)return"transformType: multiple values";properties.transformType=1;{var error=$root.google.firestore.v1beta1.ArrayValue.verify(message.appendMissingElements,long+1);if(error)return"appendMissingElements."+error}}if(message.removeAllFromArray!=null&&message.hasOwnProperty("removeAllFromArray")){if(properties.transformType===1)return"transformType: multiple values";properties.transformType=1;{var error=$root.google.firestore.v1beta1.ArrayValue.verify(message.removeAllFromArray,long+1);if(error)return"removeAllFromArray."+error}}return null};FieldTransform.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.DocumentTransform.FieldTransform)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.DocumentTransform.FieldTransform;if(object.fieldPath!=null)message.fieldPath=String(object.fieldPath);switch(object.setToServerValue){default:if(typeof object.setToServerValue==="number"){message.setToServerValue=object.setToServerValue;break}break;case"SERVER_VALUE_UNSPECIFIED":case 0:message.setToServerValue=0;break;case"REQUEST_TIME":case 1:message.setToServerValue=1;break}if(object.increment!=null){if(typeof object.increment!=="object")throw TypeError(".google.firestore.v1beta1.DocumentTransform.FieldTransform.increment: object expected");message.increment=$root.google.firestore.v1beta1.Value.fromObject(object.increment,long+1)}if(object.maximum!=null){if(typeof object.maximum!=="object")throw TypeError(".google.firestore.v1beta1.DocumentTransform.FieldTransform.maximum: object expected");message.maximum=$root.google.firestore.v1beta1.Value.fromObject(object.maximum,long+1)}if(object.minimum!=null){if(typeof object.minimum!=="object")throw TypeError(".google.firestore.v1beta1.DocumentTransform.FieldTransform.minimum: object expected");message.minimum=$root.google.firestore.v1beta1.Value.fromObject(object.minimum,long+1)}if(object.appendMissingElements!=null){if(typeof object.appendMissingElements!=="object")throw TypeError(".google.firestore.v1beta1.DocumentTransform.FieldTransform.appendMissingElements: object expected");message.appendMissingElements=$root.google.firestore.v1beta1.ArrayValue.fromObject(object.appendMissingElements,long+1)}if(object.removeAllFromArray!=null){if(typeof object.removeAllFromArray!=="object")throw TypeError(".google.firestore.v1beta1.DocumentTransform.FieldTransform.removeAllFromArray: object expected");message.removeAllFromArray=$root.google.firestore.v1beta1.ArrayValue.fromObject(object.removeAllFromArray,long+1)}return message};FieldTransform.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.fieldPath="";if(message.fieldPath!=null&&message.hasOwnProperty("fieldPath"))object.fieldPath=message.fieldPath;if(message.setToServerValue!=null&&message.hasOwnProperty("setToServerValue")){object.setToServerValue=options.enums===String?$root.google.firestore.v1beta1.DocumentTransform.FieldTransform.ServerValue[message.setToServerValue]===undefined?message.setToServerValue:$root.google.firestore.v1beta1.DocumentTransform.FieldTransform.ServerValue[message.setToServerValue]:message.setToServerValue;if(options.oneofs)object.transformType="setToServerValue"}if(message.increment!=null&&message.hasOwnProperty("increment")){object.increment=$root.google.firestore.v1beta1.Value.toObject(message.increment,options);if(options.oneofs)object.transformType="increment"}if(message.maximum!=null&&message.hasOwnProperty("maximum")){object.maximum=$root.google.firestore.v1beta1.Value.toObject(message.maximum,options);if(options.oneofs)object.transformType="maximum"}if(message.minimum!=null&&message.hasOwnProperty("minimum")){object.minimum=$root.google.firestore.v1beta1.Value.toObject(message.minimum,options);if(options.oneofs)object.transformType="minimum"}if(message.appendMissingElements!=null&&message.hasOwnProperty("appendMissingElements")){object.appendMissingElements=$root.google.firestore.v1beta1.ArrayValue.toObject(message.appendMissingElements,options);if(options.oneofs)object.transformType="appendMissingElements"}if(message.removeAllFromArray!=null&&message.hasOwnProperty("removeAllFromArray")){object.removeAllFromArray=$root.google.firestore.v1beta1.ArrayValue.toObject(message.removeAllFromArray,options);if(options.oneofs)object.transformType="removeAllFromArray"}return object};FieldTransform.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FieldTransform.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.DocumentTransform.FieldTransform"};FieldTransform.ServerValue=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="SERVER_VALUE_UNSPECIFIED"]=0;values[valuesById[1]="REQUEST_TIME"]=1;return values}();return FieldTransform}();return DocumentTransform}();v1beta1.WriteResult=function(){function WriteResult(properties){this.transformResults=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.WriteResult;while(reader.pos>>3){case 1:{message.updateTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{if(!(message.transformResults&&message.transformResults.length))message.transformResults=[];message.transformResults.push($root.google.firestore.v1beta1.Value.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};WriteResult.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};WriteResult.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.updateTime!=null&&message.hasOwnProperty("updateTime")){var error=$root.google.protobuf.Timestamp.verify(message.updateTime,long+1);if(error)return"updateTime."+error}if(message.transformResults!=null&&message.hasOwnProperty("transformResults")){if(!Array.isArray(message.transformResults))return"transformResults: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.WriteResult;if(object.updateTime!=null){if(typeof object.updateTime!=="object")throw TypeError(".google.firestore.v1beta1.WriteResult.updateTime: object expected");message.updateTime=$root.google.protobuf.Timestamp.fromObject(object.updateTime,long+1)}if(object.transformResults){if(!Array.isArray(object.transformResults))throw TypeError(".google.firestore.v1beta1.WriteResult.transformResults: array expected");message.transformResults=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.DocumentChange;while(reader.pos>>3){case 1:{message.document=$root.google.firestore.v1beta1.Document.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{if(!(message.targetIds&&message.targetIds.length))message.targetIds=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos$util.recursionLimit)return"maximum nesting depth exceeded";if(message.document!=null&&message.hasOwnProperty("document")){var error=$root.google.firestore.v1beta1.Document.verify(message.document,long+1);if(error)return"document."+error}if(message.targetIds!=null&&message.hasOwnProperty("targetIds")){if(!Array.isArray(message.targetIds))return"targetIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.DocumentChange;if(object.document!=null){if(typeof object.document!=="object")throw TypeError(".google.firestore.v1beta1.DocumentChange.document: object expected");message.document=$root.google.firestore.v1beta1.Document.fromObject(object.document,long+1)}if(object.targetIds){if(!Array.isArray(object.targetIds))throw TypeError(".google.firestore.v1beta1.DocumentChange.targetIds: array expected");message.targetIds=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.DocumentDelete;while(reader.pos>>3){case 1:{message.document=reader.string();break}case 6:{if(!(message.removedTargetIds&&message.removedTargetIds.length))message.removedTargetIds=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos$util.recursionLimit)return"maximum nesting depth exceeded";if(message.document!=null&&message.hasOwnProperty("document"))if(!$util.isString(message.document))return"document: string expected";if(message.removedTargetIds!=null&&message.hasOwnProperty("removedTargetIds")){if(!Array.isArray(message.removedTargetIds))return"removedTargetIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.DocumentDelete;if(object.document!=null)message.document=String(object.document);if(object.removedTargetIds){if(!Array.isArray(object.removedTargetIds))throw TypeError(".google.firestore.v1beta1.DocumentDelete.removedTargetIds: array expected");message.removedTargetIds=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.DocumentRemove;while(reader.pos>>3){case 1:{message.document=reader.string();break}case 2:{if(!(message.removedTargetIds&&message.removedTargetIds.length))message.removedTargetIds=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos$util.recursionLimit)return"maximum nesting depth exceeded";if(message.document!=null&&message.hasOwnProperty("document"))if(!$util.isString(message.document))return"document: string expected";if(message.removedTargetIds!=null&&message.hasOwnProperty("removedTargetIds")){if(!Array.isArray(message.removedTargetIds))return"removedTargetIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.DocumentRemove;if(object.document!=null)message.document=String(object.document);if(object.removedTargetIds){if(!Array.isArray(object.removedTargetIds))throw TypeError(".google.firestore.v1beta1.DocumentRemove.removedTargetIds: array expected");message.removedTargetIds=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.ExistenceFilter;while(reader.pos>>3){case 1:{message.targetId=reader.int32();break}case 2:{message.count=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};ExistenceFilter.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExistenceFilter.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.targetId!=null&&message.hasOwnProperty("targetId"))if(!$util.isInteger(message.targetId))return"targetId: integer expected";if(message.count!=null&&message.hasOwnProperty("count"))if(!$util.isInteger(message.count))return"count: integer expected";return null};ExistenceFilter.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1beta1.ExistenceFilter)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.ExistenceFilter;if(object.targetId!=null)message.targetId=object.targetId|0;if(object.count!=null)message.count=object.count|0;return message};ExistenceFilter.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.targetId=0;object.count=0}if(message.targetId!=null&&message.hasOwnProperty("targetId"))object.targetId=message.targetId;if(message.count!=null&&message.hasOwnProperty("count"))object.count=message.count;return object};ExistenceFilter.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ExistenceFilter.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1beta1.ExistenceFilter"};return ExistenceFilter}();v1beta1.UndeliverableFirstGenEvent=function(){function UndeliverableFirstGenEvent(properties){this.functionName=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1beta1.UndeliverableFirstGenEvent;while(reader.pos>>3){case 1:{message.message=reader.string();break}case 2:{message.reason=reader.int32();break}case 3:{message.documentName=reader.string();break}case 4:{message.documentChangeType=reader.int32();break}case 5:{if(!(message.functionName&&message.functionName.length))message.functionName=[];message.functionName.push(reader.string());break}case 6:{message.triggeredTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};UndeliverableFirstGenEvent.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UndeliverableFirstGenEvent.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.message!=null&&message.hasOwnProperty("message"))if(!$util.isString(message.message))return"message: string expected";if(message.reason!=null&&message.hasOwnProperty("reason"))switch(message.reason){default:return"reason: enum value expected";case 0:case 1:break}if(message.documentName!=null&&message.hasOwnProperty("documentName"))if(!$util.isString(message.documentName))return"documentName: string expected";if(message.documentChangeType!=null&&message.hasOwnProperty("documentChangeType"))switch(message.documentChangeType){default:return"documentChangeType: enum value expected";case 0:case 1:case 2:case 3:break}if(message.functionName!=null&&message.hasOwnProperty("functionName")){if(!Array.isArray(message.functionName))return"functionName: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1beta1.UndeliverableFirstGenEvent;if(object.message!=null)message.message=String(object.message);switch(object.reason){default:if(typeof object.reason==="number"){message.reason=object.reason;break}break;case"REASON_UNSPECIFIED":case 0:message.reason=0;break;case"EXCEEDING_SIZE_LIMIT":case 1:message.reason=1;break}if(object.documentName!=null)message.documentName=String(object.documentName);switch(object.documentChangeType){default:if(typeof object.documentChangeType==="number"){message.documentChangeType=object.documentChangeType;break}break;case"DOCUMENT_CHANGE_TYPE_UNSPECIFIED":case 0:message.documentChangeType=0;break;case"CREATE":case 1:message.documentChangeType=1;break;case"DELETE":case 2:message.documentChangeType=2;break;case"UPDATE":case 3:message.documentChangeType=3;break}if(object.functionName){if(!Array.isArray(object.functionName))throw TypeError(".google.firestore.v1beta1.UndeliverableFirstGenEvent.functionName: array expected");message.functionName=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.ResourceDescriptor;while(reader.pos>>3){case 1:{message.type=reader.string();break}case 2:{if(!(message.pattern&&message.pattern.length))message.pattern=[];message.pattern.push(reader.string());break}case 3:{message.nameField=reader.string();break}case 4:{message.history=reader.int32();break}case 5:{message.plural=reader.string();break}case 6:{message.singular=reader.string();break}case 10:{if(!(message.style&&message.style.length))message.style=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos$util.recursionLimit)return"maximum nesting depth exceeded";if(message.type!=null&&message.hasOwnProperty("type"))if(!$util.isString(message.type))return"type: string expected";if(message.pattern!=null&&message.hasOwnProperty("pattern")){if(!Array.isArray(message.pattern))return"pattern: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.ResourceDescriptor;if(object.type!=null)message.type=String(object.type);if(object.pattern){if(!Array.isArray(object.pattern))throw TypeError(".google.api.ResourceDescriptor.pattern: array expected");message.pattern=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.ResourceReference;while(reader.pos>>3){case 1:{message.type=reader.string();break}case 2:{message.childType=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ResourceReference.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ResourceReference.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.type!=null&&message.hasOwnProperty("type"))if(!$util.isString(message.type))return"type: string expected";if(message.childType!=null&&message.hasOwnProperty("childType"))if(!$util.isString(message.childType))return"childType: string expected";return null};ResourceReference.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.ResourceReference)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.ResourceReference;if(object.type!=null)message.type=String(object.type);if(object.childType!=null)message.childType=String(object.childType);return message};ResourceReference.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.type="";object.childType=""}if(message.type!=null&&message.hasOwnProperty("type"))object.type=message.type;if(message.childType!=null&&message.hasOwnProperty("childType"))object.childType=message.childType;return object};ResourceReference.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ResourceReference.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.ResourceReference"};return ResourceReference}();api.Http=function(){function Http(properties){this.rules=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.Http;while(reader.pos>>3){case 1:{if(!(message.rules&&message.rules.length))message.rules=[];message.rules.push($root.google.api.HttpRule.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.fullyDecodeReservedExpansion=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};Http.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Http.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.rules!=null&&message.hasOwnProperty("rules")){if(!Array.isArray(message.rules))return"rules: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.Http;if(object.rules){if(!Array.isArray(object.rules))throw TypeError(".google.api.Http.rules: array expected");message.rules=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.HttpRule;while(reader.pos>>3){case 1:{message.selector=reader.string();break}case 2:{message.get=reader.string();break}case 3:{message.put=reader.string();break}case 4:{message.post=reader.string();break}case 5:{message["delete"]=reader.string();break}case 6:{message.patch=reader.string();break}case 8:{message.custom=$root.google.api.CustomHttpPattern.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.body=reader.string();break}case 12:{message.responseBody=reader.string();break}case 11:{if(!(message.additionalBindings&&message.additionalBindings.length))message.additionalBindings=[];message.additionalBindings.push($root.google.api.HttpRule.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};HttpRule.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};HttpRule.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.selector!=null&&message.hasOwnProperty("selector"))if(!$util.isString(message.selector))return"selector: string expected";if(message.get!=null&&message.hasOwnProperty("get")){properties.pattern=1;if(!$util.isString(message.get))return"get: string expected"}if(message.put!=null&&message.hasOwnProperty("put")){if(properties.pattern===1)return"pattern: multiple values";properties.pattern=1;if(!$util.isString(message.put))return"put: string expected"}if(message.post!=null&&message.hasOwnProperty("post")){if(properties.pattern===1)return"pattern: multiple values";properties.pattern=1;if(!$util.isString(message.post))return"post: string expected"}if(message["delete"]!=null&&message.hasOwnProperty("delete")){if(properties.pattern===1)return"pattern: multiple values";properties.pattern=1;if(!$util.isString(message["delete"]))return"delete: string expected"}if(message.patch!=null&&message.hasOwnProperty("patch")){if(properties.pattern===1)return"pattern: multiple values";properties.pattern=1;if(!$util.isString(message.patch))return"patch: string expected"}if(message.custom!=null&&message.hasOwnProperty("custom")){if(properties.pattern===1)return"pattern: multiple values";properties.pattern=1;{var error=$root.google.api.CustomHttpPattern.verify(message.custom,long+1);if(error)return"custom."+error}}if(message.body!=null&&message.hasOwnProperty("body"))if(!$util.isString(message.body))return"body: string expected";if(message.responseBody!=null&&message.hasOwnProperty("responseBody"))if(!$util.isString(message.responseBody))return"responseBody: string expected";if(message.additionalBindings!=null&&message.hasOwnProperty("additionalBindings")){if(!Array.isArray(message.additionalBindings))return"additionalBindings: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.HttpRule;if(object.selector!=null)message.selector=String(object.selector);if(object.get!=null)message.get=String(object.get);if(object.put!=null)message.put=String(object.put);if(object.post!=null)message.post=String(object.post);if(object["delete"]!=null)message["delete"]=String(object["delete"]);if(object.patch!=null)message.patch=String(object.patch);if(object.custom!=null){if(typeof object.custom!=="object")throw TypeError(".google.api.HttpRule.custom: object expected");message.custom=$root.google.api.CustomHttpPattern.fromObject(object.custom,long+1)}if(object.body!=null)message.body=String(object.body);if(object.responseBody!=null)message.responseBody=String(object.responseBody);if(object.additionalBindings){if(!Array.isArray(object.additionalBindings))throw TypeError(".google.api.HttpRule.additionalBindings: array expected");message.additionalBindings=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.CustomHttpPattern;while(reader.pos>>3){case 1:{message.kind=reader.string();break}case 2:{message.path=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};CustomHttpPattern.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CustomHttpPattern.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.kind!=null&&message.hasOwnProperty("kind"))if(!$util.isString(message.kind))return"kind: string expected";if(message.path!=null&&message.hasOwnProperty("path"))if(!$util.isString(message.path))return"path: string expected";return null};CustomHttpPattern.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.CustomHttpPattern)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.CustomHttpPattern;if(object.kind!=null)message.kind=String(object.kind);if(object.path!=null)message.path=String(object.path);return message};CustomHttpPattern.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.kind="";object.path=""}if(message.kind!=null&&message.hasOwnProperty("kind"))object.kind=message.kind;if(message.path!=null&&message.hasOwnProperty("path"))object.path=message.path;return object};CustomHttpPattern.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CustomHttpPattern.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.CustomHttpPattern"};return CustomHttpPattern}();api.CommonLanguageSettings=function(){function CommonLanguageSettings(properties){this.destinations=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.CommonLanguageSettings;while(reader.pos>>3){case 1:{message.referenceDocsUri=reader.string();break}case 2:{if(!(message.destinations&&message.destinations.length))message.destinations=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos$util.recursionLimit)return"maximum nesting depth exceeded";if(message.referenceDocsUri!=null&&message.hasOwnProperty("referenceDocsUri"))if(!$util.isString(message.referenceDocsUri))return"referenceDocsUri: string expected";if(message.destinations!=null&&message.hasOwnProperty("destinations")){if(!Array.isArray(message.destinations))return"destinations: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.CommonLanguageSettings;if(object.referenceDocsUri!=null)message.referenceDocsUri=String(object.referenceDocsUri);if(object.destinations){if(!Array.isArray(object.destinations))throw TypeError(".google.api.CommonLanguageSettings.destinations: array expected");message.destinations=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.ClientLibrarySettings;while(reader.pos>>3){case 1:{message.version=reader.string();break}case 2:{message.launchStage=reader.int32();break}case 3:{message.restNumericEnums=reader.bool();break}case 21:{message.javaSettings=$root.google.api.JavaSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 22:{message.cppSettings=$root.google.api.CppSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 23:{message.phpSettings=$root.google.api.PhpSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 24:{message.pythonSettings=$root.google.api.PythonSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 25:{message.nodeSettings=$root.google.api.NodeSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 26:{message.dotnetSettings=$root.google.api.DotnetSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 27:{message.rubySettings=$root.google.api.RubySettings.decode(reader,reader.uint32(),undefined,long+1);break}case 28:{message.goSettings=$root.google.api.GoSettings.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ClientLibrarySettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ClientLibrarySettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.version!=null&&message.hasOwnProperty("version"))if(!$util.isString(message.version))return"version: string expected";if(message.launchStage!=null&&message.hasOwnProperty("launchStage"))switch(message.launchStage){default:return"launchStage: enum value expected";case 0:case 6:case 7:case 1:case 2:case 3:case 4:case 5:break}if(message.restNumericEnums!=null&&message.hasOwnProperty("restNumericEnums"))if(typeof message.restNumericEnums!=="boolean")return"restNumericEnums: boolean expected";if(message.javaSettings!=null&&message.hasOwnProperty("javaSettings")){var error=$root.google.api.JavaSettings.verify(message.javaSettings,long+1);if(error)return"javaSettings."+error}if(message.cppSettings!=null&&message.hasOwnProperty("cppSettings")){var error=$root.google.api.CppSettings.verify(message.cppSettings,long+1);if(error)return"cppSettings."+error}if(message.phpSettings!=null&&message.hasOwnProperty("phpSettings")){var error=$root.google.api.PhpSettings.verify(message.phpSettings,long+1);if(error)return"phpSettings."+error}if(message.pythonSettings!=null&&message.hasOwnProperty("pythonSettings")){var error=$root.google.api.PythonSettings.verify(message.pythonSettings,long+1);if(error)return"pythonSettings."+error}if(message.nodeSettings!=null&&message.hasOwnProperty("nodeSettings")){var error=$root.google.api.NodeSettings.verify(message.nodeSettings,long+1);if(error)return"nodeSettings."+error}if(message.dotnetSettings!=null&&message.hasOwnProperty("dotnetSettings")){var error=$root.google.api.DotnetSettings.verify(message.dotnetSettings,long+1);if(error)return"dotnetSettings."+error}if(message.rubySettings!=null&&message.hasOwnProperty("rubySettings")){var error=$root.google.api.RubySettings.verify(message.rubySettings,long+1);if(error)return"rubySettings."+error}if(message.goSettings!=null&&message.hasOwnProperty("goSettings")){var error=$root.google.api.GoSettings.verify(message.goSettings,long+1);if(error)return"goSettings."+error}return null};ClientLibrarySettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.ClientLibrarySettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.ClientLibrarySettings;if(object.version!=null)message.version=String(object.version);switch(object.launchStage){default:if(typeof object.launchStage==="number"){message.launchStage=object.launchStage;break}break;case"LAUNCH_STAGE_UNSPECIFIED":case 0:message.launchStage=0;break;case"UNIMPLEMENTED":case 6:message.launchStage=6;break;case"PRELAUNCH":case 7:message.launchStage=7;break;case"EARLY_ACCESS":case 1:message.launchStage=1;break;case"ALPHA":case 2:message.launchStage=2;break;case"BETA":case 3:message.launchStage=3;break;case"GA":case 4:message.launchStage=4;break;case"DEPRECATED":case 5:message.launchStage=5;break}if(object.restNumericEnums!=null)message.restNumericEnums=Boolean(object.restNumericEnums);if(object.javaSettings!=null){if(typeof object.javaSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.javaSettings: object expected");message.javaSettings=$root.google.api.JavaSettings.fromObject(object.javaSettings,long+1)}if(object.cppSettings!=null){if(typeof object.cppSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.cppSettings: object expected");message.cppSettings=$root.google.api.CppSettings.fromObject(object.cppSettings,long+1)}if(object.phpSettings!=null){if(typeof object.phpSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.phpSettings: object expected");message.phpSettings=$root.google.api.PhpSettings.fromObject(object.phpSettings,long+1)}if(object.pythonSettings!=null){if(typeof object.pythonSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.pythonSettings: object expected");message.pythonSettings=$root.google.api.PythonSettings.fromObject(object.pythonSettings,long+1)}if(object.nodeSettings!=null){if(typeof object.nodeSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.nodeSettings: object expected");message.nodeSettings=$root.google.api.NodeSettings.fromObject(object.nodeSettings,long+1)}if(object.dotnetSettings!=null){if(typeof object.dotnetSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.dotnetSettings: object expected");message.dotnetSettings=$root.google.api.DotnetSettings.fromObject(object.dotnetSettings,long+1)}if(object.rubySettings!=null){if(typeof object.rubySettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.rubySettings: object expected");message.rubySettings=$root.google.api.RubySettings.fromObject(object.rubySettings,long+1)}if(object.goSettings!=null){if(typeof object.goSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.goSettings: object expected");message.goSettings=$root.google.api.GoSettings.fromObject(object.goSettings,long+1)}return message};ClientLibrarySettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.version="";object.launchStage=options.enums===String?"LAUNCH_STAGE_UNSPECIFIED":0;object.restNumericEnums=false;object.javaSettings=null;object.cppSettings=null;object.phpSettings=null;object.pythonSettings=null;object.nodeSettings=null;object.dotnetSettings=null;object.rubySettings=null;object.goSettings=null}if(message.version!=null&&message.hasOwnProperty("version"))object.version=message.version;if(message.launchStage!=null&&message.hasOwnProperty("launchStage"))object.launchStage=options.enums===String?$root.google.api.LaunchStage[message.launchStage]===undefined?message.launchStage:$root.google.api.LaunchStage[message.launchStage]:message.launchStage;if(message.restNumericEnums!=null&&message.hasOwnProperty("restNumericEnums"))object.restNumericEnums=message.restNumericEnums;if(message.javaSettings!=null&&message.hasOwnProperty("javaSettings"))object.javaSettings=$root.google.api.JavaSettings.toObject(message.javaSettings,options);if(message.cppSettings!=null&&message.hasOwnProperty("cppSettings"))object.cppSettings=$root.google.api.CppSettings.toObject(message.cppSettings,options);if(message.phpSettings!=null&&message.hasOwnProperty("phpSettings"))object.phpSettings=$root.google.api.PhpSettings.toObject(message.phpSettings,options);if(message.pythonSettings!=null&&message.hasOwnProperty("pythonSettings"))object.pythonSettings=$root.google.api.PythonSettings.toObject(message.pythonSettings,options);if(message.nodeSettings!=null&&message.hasOwnProperty("nodeSettings"))object.nodeSettings=$root.google.api.NodeSettings.toObject(message.nodeSettings,options);if(message.dotnetSettings!=null&&message.hasOwnProperty("dotnetSettings"))object.dotnetSettings=$root.google.api.DotnetSettings.toObject(message.dotnetSettings,options);if(message.rubySettings!=null&&message.hasOwnProperty("rubySettings"))object.rubySettings=$root.google.api.RubySettings.toObject(message.rubySettings,options);if(message.goSettings!=null&&message.hasOwnProperty("goSettings"))object.goSettings=$root.google.api.GoSettings.toObject(message.goSettings,options);return object};ClientLibrarySettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ClientLibrarySettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.ClientLibrarySettings"};return ClientLibrarySettings}();api.Publishing=function(){function Publishing(properties){this.methodSettings=[];this.codeownerGithubTeams=[];this.librarySettings=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.Publishing;while(reader.pos>>3){case 2:{if(!(message.methodSettings&&message.methodSettings.length))message.methodSettings=[];message.methodSettings.push($root.google.api.MethodSettings.decode(reader,reader.uint32(),undefined,long+1));break}case 101:{message.newIssueUri=reader.string();break}case 102:{message.documentationUri=reader.string();break}case 103:{message.apiShortName=reader.string();break}case 104:{message.githubLabel=reader.string();break}case 105:{if(!(message.codeownerGithubTeams&&message.codeownerGithubTeams.length))message.codeownerGithubTeams=[];message.codeownerGithubTeams.push(reader.string());break}case 106:{message.docTagPrefix=reader.string();break}case 107:{message.organization=reader.int32();break}case 109:{if(!(message.librarySettings&&message.librarySettings.length))message.librarySettings=[];message.librarySettings.push($root.google.api.ClientLibrarySettings.decode(reader,reader.uint32(),undefined,long+1));break}case 110:{message.protoReferenceDocumentationUri=reader.string();break}case 111:{message.restReferenceDocumentationUri=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};Publishing.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Publishing.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.methodSettings!=null&&message.hasOwnProperty("methodSettings")){if(!Array.isArray(message.methodSettings))return"methodSettings: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.Publishing;if(object.methodSettings){if(!Array.isArray(object.methodSettings))throw TypeError(".google.api.Publishing.methodSettings: array expected");message.methodSettings=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.JavaSettings,key,value;while(reader.pos>>3){case 1:{message.libraryPackage=reader.string();break}case 2:{if(message.serviceClassNames===$util.emptyObject)message.serviceClassNames={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.serviceClassNames,key);message.serviceClassNames[key]=value;break}case 3:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};JavaSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};JavaSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.libraryPackage!=null&&message.hasOwnProperty("libraryPackage"))if(!$util.isString(message.libraryPackage))return"libraryPackage: string expected";if(message.serviceClassNames!=null&&message.hasOwnProperty("serviceClassNames")){if(!$util.isObject(message.serviceClassNames))return"serviceClassNames: object expected";var key=Object.keys(message.serviceClassNames);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.JavaSettings;if(object.libraryPackage!=null)message.libraryPackage=String(object.libraryPackage);if(object.serviceClassNames){if(typeof object.serviceClassNames!=="object")throw TypeError(".google.api.JavaSettings.serviceClassNames: object expected");message.serviceClassNames={};for(var keys=Object.keys(object.serviceClassNames),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.CppSettings;while(reader.pos>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};CppSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CppSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}return null};CppSettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.CppSettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.CppSettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.CppSettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}return message};CppSettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.common=null;if(message.common!=null&&message.hasOwnProperty("common"))object.common=$root.google.api.CommonLanguageSettings.toObject(message.common,options);return object};CppSettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CppSettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.CppSettings"};return CppSettings}();api.PhpSettings=function(){function PhpSettings(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.PhpSettings;while(reader.pos>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};PhpSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};PhpSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}return null};PhpSettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.PhpSettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.PhpSettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.PhpSettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}return message};PhpSettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.common=null;if(message.common!=null&&message.hasOwnProperty("common"))object.common=$root.google.api.CommonLanguageSettings.toObject(message.common,options);return object};PhpSettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};PhpSettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.PhpSettings"};return PhpSettings}();api.PythonSettings=function(){function PythonSettings(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.PythonSettings;while(reader.pos>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.experimentalFeatures=$root.google.api.PythonSettings.ExperimentalFeatures.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};PythonSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};PythonSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}if(message.experimentalFeatures!=null&&message.hasOwnProperty("experimentalFeatures")){var error=$root.google.api.PythonSettings.ExperimentalFeatures.verify(message.experimentalFeatures,long+1);if(error)return"experimentalFeatures."+error}return null};PythonSettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.PythonSettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.PythonSettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.PythonSettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}if(object.experimentalFeatures!=null){if(typeof object.experimentalFeatures!=="object")throw TypeError(".google.api.PythonSettings.experimentalFeatures: object expected");message.experimentalFeatures=$root.google.api.PythonSettings.ExperimentalFeatures.fromObject(object.experimentalFeatures,long+1)}return message};PythonSettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.common=null;object.experimentalFeatures=null}if(message.common!=null&&message.hasOwnProperty("common"))object.common=$root.google.api.CommonLanguageSettings.toObject(message.common,options);if(message.experimentalFeatures!=null&&message.hasOwnProperty("experimentalFeatures"))object.experimentalFeatures=$root.google.api.PythonSettings.ExperimentalFeatures.toObject(message.experimentalFeatures,options);return object};PythonSettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};PythonSettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.PythonSettings"};PythonSettings.ExperimentalFeatures=function(){function ExperimentalFeatures(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.PythonSettings.ExperimentalFeatures;while(reader.pos>>3){case 1:{message.restAsyncIoEnabled=reader.bool();break}case 2:{message.protobufPythonicTypesEnabled=reader.bool();break}case 3:{message.unversionedPackageDisabled=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};ExperimentalFeatures.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExperimentalFeatures.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.restAsyncIoEnabled!=null&&message.hasOwnProperty("restAsyncIoEnabled"))if(typeof message.restAsyncIoEnabled!=="boolean")return"restAsyncIoEnabled: boolean expected";if(message.protobufPythonicTypesEnabled!=null&&message.hasOwnProperty("protobufPythonicTypesEnabled"))if(typeof message.protobufPythonicTypesEnabled!=="boolean")return"protobufPythonicTypesEnabled: boolean expected";if(message.unversionedPackageDisabled!=null&&message.hasOwnProperty("unversionedPackageDisabled"))if(typeof message.unversionedPackageDisabled!=="boolean")return"unversionedPackageDisabled: boolean expected";return null};ExperimentalFeatures.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.PythonSettings.ExperimentalFeatures)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.PythonSettings.ExperimentalFeatures;if(object.restAsyncIoEnabled!=null)message.restAsyncIoEnabled=Boolean(object.restAsyncIoEnabled);if(object.protobufPythonicTypesEnabled!=null)message.protobufPythonicTypesEnabled=Boolean(object.protobufPythonicTypesEnabled);if(object.unversionedPackageDisabled!=null)message.unversionedPackageDisabled=Boolean(object.unversionedPackageDisabled);return message};ExperimentalFeatures.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.restAsyncIoEnabled=false;object.protobufPythonicTypesEnabled=false;object.unversionedPackageDisabled=false}if(message.restAsyncIoEnabled!=null&&message.hasOwnProperty("restAsyncIoEnabled"))object.restAsyncIoEnabled=message.restAsyncIoEnabled;if(message.protobufPythonicTypesEnabled!=null&&message.hasOwnProperty("protobufPythonicTypesEnabled"))object.protobufPythonicTypesEnabled=message.protobufPythonicTypesEnabled;if(message.unversionedPackageDisabled!=null&&message.hasOwnProperty("unversionedPackageDisabled"))object.unversionedPackageDisabled=message.unversionedPackageDisabled;return object};ExperimentalFeatures.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ExperimentalFeatures.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.PythonSettings.ExperimentalFeatures"};return ExperimentalFeatures}();return PythonSettings}();api.NodeSettings=function(){function NodeSettings(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.NodeSettings;while(reader.pos>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};NodeSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};NodeSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}return null};NodeSettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.NodeSettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.NodeSettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.NodeSettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}return message};NodeSettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.common=null;if(message.common!=null&&message.hasOwnProperty("common"))object.common=$root.google.api.CommonLanguageSettings.toObject(message.common,options);return object};NodeSettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};NodeSettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.NodeSettings"};return NodeSettings}();api.DotnetSettings=function(){function DotnetSettings(properties){this.renamedServices={};this.renamedResources={};this.ignoredResources=[];this.forcedNamespaceAliases=[];this.handwrittenSignatures=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.DotnetSettings,key,value;while(reader.pos>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{if(message.renamedServices===$util.emptyObject)message.renamedServices={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.renamedServices,key);message.renamedServices[key]=value;break}case 3:{if(message.renamedResources===$util.emptyObject)message.renamedResources={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.renamedResources,key);message.renamedResources[key]=value;break}case 4:{if(!(message.ignoredResources&&message.ignoredResources.length))message.ignoredResources=[];message.ignoredResources.push(reader.string());break}case 5:{if(!(message.forcedNamespaceAliases&&message.forcedNamespaceAliases.length))message.forcedNamespaceAliases=[];message.forcedNamespaceAliases.push(reader.string());break}case 6:{if(!(message.handwrittenSignatures&&message.handwrittenSignatures.length))message.handwrittenSignatures=[];message.handwrittenSignatures.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};DotnetSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DotnetSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}if(message.renamedServices!=null&&message.hasOwnProperty("renamedServices")){if(!$util.isObject(message.renamedServices))return"renamedServices: object expected";var key=Object.keys(message.renamedServices);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.DotnetSettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.DotnetSettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}if(object.renamedServices){if(typeof object.renamedServices!=="object")throw TypeError(".google.api.DotnetSettings.renamedServices: object expected");message.renamedServices={};for(var keys=Object.keys(object.renamedServices),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.RubySettings;while(reader.pos>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RubySettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RubySettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}return null};RubySettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.RubySettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.RubySettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.RubySettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}return message};RubySettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.common=null;if(message.common!=null&&message.hasOwnProperty("common"))object.common=$root.google.api.CommonLanguageSettings.toObject(message.common,options);return object};RubySettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RubySettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.RubySettings"};return RubySettings}();api.GoSettings=function(){function GoSettings(properties){this.renamedServices={};if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.GoSettings,key,value;while(reader.pos>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{if(message.renamedServices===$util.emptyObject)message.renamedServices={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.renamedServices,key);message.renamedServices[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};GoSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GoSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}if(message.renamedServices!=null&&message.hasOwnProperty("renamedServices")){if(!$util.isObject(message.renamedServices))return"renamedServices: object expected";var key=Object.keys(message.renamedServices);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.GoSettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.GoSettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}if(object.renamedServices){if(typeof object.renamedServices!=="object")throw TypeError(".google.api.GoSettings.renamedServices: object expected");message.renamedServices={};for(var keys=Object.keys(object.renamedServices),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.MethodSettings;while(reader.pos>>3){case 1:{message.selector=reader.string();break}case 2:{message.longRunning=$root.google.api.MethodSettings.LongRunning.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{if(!(message.autoPopulatedFields&&message.autoPopulatedFields.length))message.autoPopulatedFields=[];message.autoPopulatedFields.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};MethodSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};MethodSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.selector!=null&&message.hasOwnProperty("selector"))if(!$util.isString(message.selector))return"selector: string expected";if(message.longRunning!=null&&message.hasOwnProperty("longRunning")){var error=$root.google.api.MethodSettings.LongRunning.verify(message.longRunning,long+1);if(error)return"longRunning."+error}if(message.autoPopulatedFields!=null&&message.hasOwnProperty("autoPopulatedFields")){if(!Array.isArray(message.autoPopulatedFields))return"autoPopulatedFields: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.MethodSettings;if(object.selector!=null)message.selector=String(object.selector);if(object.longRunning!=null){if(typeof object.longRunning!=="object")throw TypeError(".google.api.MethodSettings.longRunning: object expected");message.longRunning=$root.google.api.MethodSettings.LongRunning.fromObject(object.longRunning,long+1)}if(object.autoPopulatedFields){if(!Array.isArray(object.autoPopulatedFields))throw TypeError(".google.api.MethodSettings.autoPopulatedFields: array expected");message.autoPopulatedFields=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.MethodSettings.LongRunning;while(reader.pos>>3){case 1:{message.initialPollDelay=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.pollDelayMultiplier=reader.float();break}case 3:{message.maxPollDelay=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.totalPollTimeout=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};LongRunning.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};LongRunning.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.initialPollDelay!=null&&message.hasOwnProperty("initialPollDelay")){var error=$root.google.protobuf.Duration.verify(message.initialPollDelay,long+1);if(error)return"initialPollDelay."+error}if(message.pollDelayMultiplier!=null&&message.hasOwnProperty("pollDelayMultiplier"))if(typeof message.pollDelayMultiplier!=="number")return"pollDelayMultiplier: number expected";if(message.maxPollDelay!=null&&message.hasOwnProperty("maxPollDelay")){var error=$root.google.protobuf.Duration.verify(message.maxPollDelay,long+1);if(error)return"maxPollDelay."+error}if(message.totalPollTimeout!=null&&message.hasOwnProperty("totalPollTimeout")){var error=$root.google.protobuf.Duration.verify(message.totalPollTimeout,long+1);if(error)return"totalPollTimeout."+error}return null};LongRunning.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.MethodSettings.LongRunning)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.MethodSettings.LongRunning;if(object.initialPollDelay!=null){if(typeof object.initialPollDelay!=="object")throw TypeError(".google.api.MethodSettings.LongRunning.initialPollDelay: object expected");message.initialPollDelay=$root.google.protobuf.Duration.fromObject(object.initialPollDelay,long+1)}if(object.pollDelayMultiplier!=null)message.pollDelayMultiplier=Number(object.pollDelayMultiplier);if(object.maxPollDelay!=null){if(typeof object.maxPollDelay!=="object")throw TypeError(".google.api.MethodSettings.LongRunning.maxPollDelay: object expected");message.maxPollDelay=$root.google.protobuf.Duration.fromObject(object.maxPollDelay,long+1)}if(object.totalPollTimeout!=null){if(typeof object.totalPollTimeout!=="object")throw TypeError(".google.api.MethodSettings.LongRunning.totalPollTimeout: object expected");message.totalPollTimeout=$root.google.protobuf.Duration.fromObject(object.totalPollTimeout,long+1)}return message};LongRunning.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.initialPollDelay=null;object.pollDelayMultiplier=0;object.maxPollDelay=null;object.totalPollTimeout=null}if(message.initialPollDelay!=null&&message.hasOwnProperty("initialPollDelay"))object.initialPollDelay=$root.google.protobuf.Duration.toObject(message.initialPollDelay,options);if(message.pollDelayMultiplier!=null&&message.hasOwnProperty("pollDelayMultiplier"))object.pollDelayMultiplier=options.json&&!isFinite(message.pollDelayMultiplier)?String(message.pollDelayMultiplier):message.pollDelayMultiplier;if(message.maxPollDelay!=null&&message.hasOwnProperty("maxPollDelay"))object.maxPollDelay=$root.google.protobuf.Duration.toObject(message.maxPollDelay,options);if(message.totalPollTimeout!=null&&message.hasOwnProperty("totalPollTimeout"))object.totalPollTimeout=$root.google.protobuf.Duration.toObject(message.totalPollTimeout,options);return object};LongRunning.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};LongRunning.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.MethodSettings.LongRunning"};return LongRunning}();return MethodSettings}();api.ClientLibraryOrganization=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED"]=0;values[valuesById[1]="CLOUD"]=1;values[valuesById[2]="ADS"]=2;values[valuesById[3]="PHOTOS"]=3;values[valuesById[4]="STREET_VIEW"]=4;values[valuesById[5]="SHOPPING"]=5;values[valuesById[6]="GEO"]=6;values[valuesById[7]="GENERATIVE_AI"]=7;return values}();api.ClientLibraryDestination=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="CLIENT_LIBRARY_DESTINATION_UNSPECIFIED"]=0;values[valuesById[10]="GITHUB"]=10;values[valuesById[20]="PACKAGE_MANAGER"]=20;return values}();api.SelectiveGapicGeneration=function(){function SelectiveGapicGeneration(properties){this.methods=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.SelectiveGapicGeneration;while(reader.pos>>3){case 1:{if(!(message.methods&&message.methods.length))message.methods=[];message.methods.push(reader.string());break}case 2:{message.generateOmittedAsInternal=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};SelectiveGapicGeneration.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};SelectiveGapicGeneration.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.methods!=null&&message.hasOwnProperty("methods")){if(!Array.isArray(message.methods))return"methods: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.SelectiveGapicGeneration;if(object.methods){if(!Array.isArray(object.methods))throw TypeError(".google.api.SelectiveGapicGeneration.methods: array expected");message.methods=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.RoutingRule;while(reader.pos>>3){case 2:{if(!(message.routingParameters&&message.routingParameters.length))message.routingParameters=[];message.routingParameters.push($root.google.api.RoutingParameter.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};RoutingRule.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RoutingRule.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.routingParameters!=null&&message.hasOwnProperty("routingParameters")){if(!Array.isArray(message.routingParameters))return"routingParameters: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.RoutingRule;if(object.routingParameters){if(!Array.isArray(object.routingParameters))throw TypeError(".google.api.RoutingRule.routingParameters: array expected");message.routingParameters=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.RoutingParameter;while(reader.pos>>3){case 1:{message.field=reader.string();break}case 2:{message.pathTemplate=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};RoutingParameter.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RoutingParameter.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.field!=null&&message.hasOwnProperty("field"))if(!$util.isString(message.field))return"field: string expected";if(message.pathTemplate!=null&&message.hasOwnProperty("pathTemplate"))if(!$util.isString(message.pathTemplate))return"pathTemplate: string expected";return null};RoutingParameter.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.RoutingParameter)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.RoutingParameter;if(object.field!=null)message.field=String(object.field);if(object.pathTemplate!=null)message.pathTemplate=String(object.pathTemplate);return message};RoutingParameter.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.field="";object.pathTemplate=""}if(message.field!=null&&message.hasOwnProperty("field"))object.field=message.field;if(message.pathTemplate!=null&&message.hasOwnProperty("pathTemplate"))object.pathTemplate=message.pathTemplate;return object};RoutingParameter.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RoutingParameter.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.RoutingParameter"};return RoutingParameter}();return api}();google.protobuf=function(){var protobuf={};protobuf.FileDescriptorSet=function(){function FileDescriptorSet(properties){this.file=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FileDescriptorSet;while(reader.pos>>3){case 1:{if(!(message.file&&message.file.length))message.file=[];message.file.push($root.google.protobuf.FileDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};FileDescriptorSet.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FileDescriptorSet.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.file!=null&&message.hasOwnProperty("file")){if(!Array.isArray(message.file))return"file: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FileDescriptorSet;if(object.file){if(!Array.isArray(object.file))throw TypeError(".google.protobuf.FileDescriptorSet.file: array expected");message.file=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FileDescriptorProto;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{message["package"]=reader.string();break}case 3:{if(!(message.dependency&&message.dependency.length))message.dependency=[];message.dependency.push(reader.string());break}case 10:{if(!(message.publicDependency&&message.publicDependency.length))message.publicDependency=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message["package"]!=null&&message.hasOwnProperty("package"))if(!$util.isString(message["package"]))return"package: string expected";if(message.dependency!=null&&message.hasOwnProperty("dependency")){if(!Array.isArray(message.dependency))return"dependency: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FileDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object["package"]!=null)message["package"]=String(object["package"]);if(object.dependency){if(!Array.isArray(object.dependency))throw TypeError(".google.protobuf.FileDescriptorProto.dependency: array expected");message.dependency=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.DescriptorProto;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{if(!(message.field&&message.field.length))message.field=[];message.field.push($root.google.protobuf.FieldDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 6:{if(!(message.extension&&message.extension.length))message.extension=[];message.extension.push($root.google.protobuf.FieldDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{if(!(message.nestedType&&message.nestedType.length))message.nestedType=[];message.nestedType.push($root.google.protobuf.DescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 4:{if(!(message.enumType&&message.enumType.length))message.enumType=[];message.enumType.push($root.google.protobuf.EnumDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 5:{if(!(message.extensionRange&&message.extensionRange.length))message.extensionRange=[];message.extensionRange.push($root.google.protobuf.DescriptorProto.ExtensionRange.decode(reader,reader.uint32(),undefined,long+1));break}case 8:{if(!(message.oneofDecl&&message.oneofDecl.length))message.oneofDecl=[];message.oneofDecl.push($root.google.protobuf.OneofDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 7:{message.options=$root.google.protobuf.MessageOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 9:{if(!(message.reservedRange&&message.reservedRange.length))message.reservedRange=[];message.reservedRange.push($root.google.protobuf.DescriptorProto.ReservedRange.decode(reader,reader.uint32(),undefined,long+1));break}case 10:{if(!(message.reservedName&&message.reservedName.length))message.reservedName=[];message.reservedName.push(reader.string());break}case 11:{message.visibility=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};DescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.field!=null&&message.hasOwnProperty("field")){if(!Array.isArray(message.field))return"field: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.DescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.field){if(!Array.isArray(object.field))throw TypeError(".google.protobuf.DescriptorProto.field: array expected");message.field=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.DescriptorProto.ExtensionRange;while(reader.pos>>3){case 1:{message.start=reader.int32();break}case 2:{message.end=reader.int32();break}case 3:{message.options=$root.google.protobuf.ExtensionRangeOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ExtensionRange.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExtensionRange.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.start!=null&&message.hasOwnProperty("start"))if(!$util.isInteger(message.start))return"start: integer expected";if(message.end!=null&&message.hasOwnProperty("end"))if(!$util.isInteger(message.end))return"end: integer expected";if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.ExtensionRangeOptions.verify(message.options,long+1);if(error)return"options."+error}return null};ExtensionRange.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.DescriptorProto.ExtensionRange)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.DescriptorProto.ExtensionRange;if(object.start!=null)message.start=object.start|0;if(object.end!=null)message.end=object.end|0;if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.DescriptorProto.ExtensionRange.options: object expected");message.options=$root.google.protobuf.ExtensionRangeOptions.fromObject(object.options,long+1)}return message};ExtensionRange.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.start=0;object.end=0;object.options=null}if(message.start!=null&&message.hasOwnProperty("start"))object.start=message.start;if(message.end!=null&&message.hasOwnProperty("end"))object.end=message.end;if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.ExtensionRangeOptions.toObject(message.options,options);return object};ExtensionRange.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ExtensionRange.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.DescriptorProto.ExtensionRange"};return ExtensionRange}();DescriptorProto.ReservedRange=function(){function ReservedRange(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.DescriptorProto.ReservedRange;while(reader.pos>>3){case 1:{message.start=reader.int32();break}case 2:{message.end=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};ReservedRange.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ReservedRange.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.start!=null&&message.hasOwnProperty("start"))if(!$util.isInteger(message.start))return"start: integer expected";if(message.end!=null&&message.hasOwnProperty("end"))if(!$util.isInteger(message.end))return"end: integer expected";return null};ReservedRange.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.DescriptorProto.ReservedRange)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.DescriptorProto.ReservedRange;if(object.start!=null)message.start=object.start|0;if(object.end!=null)message.end=object.end|0;return message};ReservedRange.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.start=0;object.end=0}if(message.start!=null&&message.hasOwnProperty("start"))object.start=message.start;if(message.end!=null&&message.hasOwnProperty("end"))object.end=message.end;return object};ReservedRange.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ReservedRange.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.DescriptorProto.ReservedRange"};return ReservedRange}();return DescriptorProto}();protobuf.ExtensionRangeOptions=function(){function ExtensionRangeOptions(properties){this.uninterpretedOption=[];this.declaration=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.ExtensionRangeOptions;while(reader.pos>>3){case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{if(!(message.declaration&&message.declaration.length))message.declaration=[];message.declaration.push($root.google.protobuf.ExtensionRangeOptions.Declaration.decode(reader,reader.uint32(),undefined,long+1));break}case 50:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.verification=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};ExtensionRangeOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExtensionRangeOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.ExtensionRangeOptions;if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.ExtensionRangeOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.ExtensionRangeOptions.Declaration;while(reader.pos>>3){case 1:{message.number=reader.int32();break}case 2:{message.fullName=reader.string();break}case 3:{message.type=reader.string();break}case 5:{message.reserved=reader.bool();break}case 6:{message.repeated=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};Declaration.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Declaration.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.number!=null&&message.hasOwnProperty("number"))if(!$util.isInteger(message.number))return"number: integer expected";if(message.fullName!=null&&message.hasOwnProperty("fullName"))if(!$util.isString(message.fullName))return"fullName: string expected";if(message.type!=null&&message.hasOwnProperty("type"))if(!$util.isString(message.type))return"type: string expected";if(message.reserved!=null&&message.hasOwnProperty("reserved"))if(typeof message.reserved!=="boolean")return"reserved: boolean expected";if(message.repeated!=null&&message.hasOwnProperty("repeated"))if(typeof message.repeated!=="boolean")return"repeated: boolean expected";return null};Declaration.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.ExtensionRangeOptions.Declaration)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.ExtensionRangeOptions.Declaration;if(object.number!=null)message.number=object.number|0;if(object.fullName!=null)message.fullName=String(object.fullName);if(object.type!=null)message.type=String(object.type);if(object.reserved!=null)message.reserved=Boolean(object.reserved);if(object.repeated!=null)message.repeated=Boolean(object.repeated);return message};Declaration.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.number=0;object.fullName="";object.type="";object.reserved=false;object.repeated=false}if(message.number!=null&&message.hasOwnProperty("number"))object.number=message.number;if(message.fullName!=null&&message.hasOwnProperty("fullName"))object.fullName=message.fullName;if(message.type!=null&&message.hasOwnProperty("type"))object.type=message.type;if(message.reserved!=null&&message.hasOwnProperty("reserved"))object.reserved=message.reserved;if(message.repeated!=null&&message.hasOwnProperty("repeated"))object.repeated=message.repeated;return object};Declaration.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Declaration.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.ExtensionRangeOptions.Declaration"};return Declaration}();ExtensionRangeOptions.VerificationState=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="DECLARATION"]=0;values[valuesById[1]="UNVERIFIED"]=1;return values}();return ExtensionRangeOptions}();protobuf.FieldDescriptorProto=function(){function FieldDescriptorProto(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FieldDescriptorProto;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 3:{message.number=reader.int32();break}case 4:{message.label=reader.int32();break}case 5:{message.type=reader.int32();break}case 6:{message.typeName=reader.string();break}case 2:{message.extendee=reader.string();break}case 7:{message.defaultValue=reader.string();break}case 9:{message.oneofIndex=reader.int32();break}case 10:{message.jsonName=reader.string();break}case 8:{message.options=$root.google.protobuf.FieldOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 17:{message.proto3Optional=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};FieldDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FieldDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.number!=null&&message.hasOwnProperty("number"))if(!$util.isInteger(message.number))return"number: integer expected";if(message.label!=null&&message.hasOwnProperty("label"))switch(message.label){default:return"label: enum value expected";case 1:case 3:case 2:break}if(message.type!=null&&message.hasOwnProperty("type"))switch(message.type){default:return"type: enum value expected";case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:break}if(message.typeName!=null&&message.hasOwnProperty("typeName"))if(!$util.isString(message.typeName))return"typeName: string expected";if(message.extendee!=null&&message.hasOwnProperty("extendee"))if(!$util.isString(message.extendee))return"extendee: string expected";if(message.defaultValue!=null&&message.hasOwnProperty("defaultValue"))if(!$util.isString(message.defaultValue))return"defaultValue: string expected";if(message.oneofIndex!=null&&message.hasOwnProperty("oneofIndex"))if(!$util.isInteger(message.oneofIndex))return"oneofIndex: integer expected";if(message.jsonName!=null&&message.hasOwnProperty("jsonName"))if(!$util.isString(message.jsonName))return"jsonName: string expected";if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.FieldOptions.verify(message.options,long+1);if(error)return"options."+error}if(message.proto3Optional!=null&&message.hasOwnProperty("proto3Optional"))if(typeof message.proto3Optional!=="boolean")return"proto3Optional: boolean expected";return null};FieldDescriptorProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FieldDescriptorProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FieldDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.number!=null)message.number=object.number|0;switch(object.label){default:if(typeof object.label==="number"){message.label=object.label;break}break;case"LABEL_OPTIONAL":case 1:message.label=1;break;case"LABEL_REPEATED":case 3:message.label=3;break;case"LABEL_REQUIRED":case 2:message.label=2;break}switch(object.type){default:if(typeof object.type==="number"){message.type=object.type;break}break;case"TYPE_DOUBLE":case 1:message.type=1;break;case"TYPE_FLOAT":case 2:message.type=2;break;case"TYPE_INT64":case 3:message.type=3;break;case"TYPE_UINT64":case 4:message.type=4;break;case"TYPE_INT32":case 5:message.type=5;break;case"TYPE_FIXED64":case 6:message.type=6;break;case"TYPE_FIXED32":case 7:message.type=7;break;case"TYPE_BOOL":case 8:message.type=8;break;case"TYPE_STRING":case 9:message.type=9;break;case"TYPE_GROUP":case 10:message.type=10;break;case"TYPE_MESSAGE":case 11:message.type=11;break;case"TYPE_BYTES":case 12:message.type=12;break;case"TYPE_UINT32":case 13:message.type=13;break;case"TYPE_ENUM":case 14:message.type=14;break;case"TYPE_SFIXED32":case 15:message.type=15;break;case"TYPE_SFIXED64":case 16:message.type=16;break;case"TYPE_SINT32":case 17:message.type=17;break;case"TYPE_SINT64":case 18:message.type=18;break}if(object.typeName!=null)message.typeName=String(object.typeName);if(object.extendee!=null)message.extendee=String(object.extendee);if(object.defaultValue!=null)message.defaultValue=String(object.defaultValue);if(object.oneofIndex!=null)message.oneofIndex=object.oneofIndex|0;if(object.jsonName!=null)message.jsonName=String(object.jsonName);if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.FieldDescriptorProto.options: object expected");message.options=$root.google.protobuf.FieldOptions.fromObject(object.options,long+1)}if(object.proto3Optional!=null)message.proto3Optional=Boolean(object.proto3Optional);return message};FieldDescriptorProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.extendee="";object.number=0;object.label=options.enums===String?"LABEL_OPTIONAL":1;object.type=options.enums===String?"TYPE_DOUBLE":1;object.typeName="";object.defaultValue="";object.options=null;object.oneofIndex=0;object.jsonName="";object.proto3Optional=false}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.extendee!=null&&message.hasOwnProperty("extendee"))object.extendee=message.extendee;if(message.number!=null&&message.hasOwnProperty("number"))object.number=message.number;if(message.label!=null&&message.hasOwnProperty("label"))object.label=options.enums===String?$root.google.protobuf.FieldDescriptorProto.Label[message.label]===undefined?message.label:$root.google.protobuf.FieldDescriptorProto.Label[message.label]:message.label;if(message.type!=null&&message.hasOwnProperty("type"))object.type=options.enums===String?$root.google.protobuf.FieldDescriptorProto.Type[message.type]===undefined?message.type:$root.google.protobuf.FieldDescriptorProto.Type[message.type]:message.type;if(message.typeName!=null&&message.hasOwnProperty("typeName"))object.typeName=message.typeName;if(message.defaultValue!=null&&message.hasOwnProperty("defaultValue"))object.defaultValue=message.defaultValue;if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.FieldOptions.toObject(message.options,options);if(message.oneofIndex!=null&&message.hasOwnProperty("oneofIndex"))object.oneofIndex=message.oneofIndex;if(message.jsonName!=null&&message.hasOwnProperty("jsonName"))object.jsonName=message.jsonName;if(message.proto3Optional!=null&&message.hasOwnProperty("proto3Optional"))object.proto3Optional=message.proto3Optional;return object};FieldDescriptorProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FieldDescriptorProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FieldDescriptorProto"};FieldDescriptorProto.Type=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[1]="TYPE_DOUBLE"]=1;values[valuesById[2]="TYPE_FLOAT"]=2;values[valuesById[3]="TYPE_INT64"]=3;values[valuesById[4]="TYPE_UINT64"]=4;values[valuesById[5]="TYPE_INT32"]=5;values[valuesById[6]="TYPE_FIXED64"]=6;values[valuesById[7]="TYPE_FIXED32"]=7;values[valuesById[8]="TYPE_BOOL"]=8;values[valuesById[9]="TYPE_STRING"]=9;values[valuesById[10]="TYPE_GROUP"]=10;values[valuesById[11]="TYPE_MESSAGE"]=11;values[valuesById[12]="TYPE_BYTES"]=12;values[valuesById[13]="TYPE_UINT32"]=13;values[valuesById[14]="TYPE_ENUM"]=14;values[valuesById[15]="TYPE_SFIXED32"]=15;values[valuesById[16]="TYPE_SFIXED64"]=16;values[valuesById[17]="TYPE_SINT32"]=17;values[valuesById[18]="TYPE_SINT64"]=18;return values}();FieldDescriptorProto.Label=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[1]="LABEL_OPTIONAL"]=1;values[valuesById[3]="LABEL_REPEATED"]=3;values[valuesById[2]="LABEL_REQUIRED"]=2;return values}();return FieldDescriptorProto}();protobuf.OneofDescriptorProto=function(){function OneofDescriptorProto(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.OneofDescriptorProto;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{message.options=$root.google.protobuf.OneofOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};OneofDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};OneofDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.OneofOptions.verify(message.options,long+1);if(error)return"options."+error}return null};OneofDescriptorProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.OneofDescriptorProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.OneofDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.OneofDescriptorProto.options: object expected");message.options=$root.google.protobuf.OneofOptions.fromObject(object.options,long+1)}return message};OneofDescriptorProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.options=null}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.OneofOptions.toObject(message.options,options);return object};OneofDescriptorProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};OneofDescriptorProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.OneofDescriptorProto"};return OneofDescriptorProto}();protobuf.EnumDescriptorProto=function(){function EnumDescriptorProto(properties){this.value=[];this.reservedRange=[];this.reservedName=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.EnumDescriptorProto;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{if(!(message.value&&message.value.length))message.value=[];message.value.push($root.google.protobuf.EnumValueDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{message.options=$root.google.protobuf.EnumOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{if(!(message.reservedRange&&message.reservedRange.length))message.reservedRange=[];message.reservedRange.push($root.google.protobuf.EnumDescriptorProto.EnumReservedRange.decode(reader,reader.uint32(),undefined,long+1));break}case 5:{if(!(message.reservedName&&message.reservedName.length))message.reservedName=[];message.reservedName.push(reader.string());break}case 6:{message.visibility=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};EnumDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EnumDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.value!=null&&message.hasOwnProperty("value")){if(!Array.isArray(message.value))return"value: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.EnumDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.value){if(!Array.isArray(object.value))throw TypeError(".google.protobuf.EnumDescriptorProto.value: array expected");message.value=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.EnumDescriptorProto.EnumReservedRange;while(reader.pos>>3){case 1:{message.start=reader.int32();break}case 2:{message.end=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};EnumReservedRange.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EnumReservedRange.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.start!=null&&message.hasOwnProperty("start"))if(!$util.isInteger(message.start))return"start: integer expected";if(message.end!=null&&message.hasOwnProperty("end"))if(!$util.isInteger(message.end))return"end: integer expected";return null};EnumReservedRange.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.EnumDescriptorProto.EnumReservedRange)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.EnumDescriptorProto.EnumReservedRange;if(object.start!=null)message.start=object.start|0;if(object.end!=null)message.end=object.end|0;return message};EnumReservedRange.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.start=0;object.end=0}if(message.start!=null&&message.hasOwnProperty("start"))object.start=message.start;if(message.end!=null&&message.hasOwnProperty("end"))object.end=message.end;return object};EnumReservedRange.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};EnumReservedRange.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.EnumDescriptorProto.EnumReservedRange"};return EnumReservedRange}();return EnumDescriptorProto}();protobuf.EnumValueDescriptorProto=function(){function EnumValueDescriptorProto(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.EnumValueDescriptorProto;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{message.number=reader.int32();break}case 3:{message.options=$root.google.protobuf.EnumValueOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};EnumValueDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EnumValueDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.number!=null&&message.hasOwnProperty("number"))if(!$util.isInteger(message.number))return"number: integer expected";if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.EnumValueOptions.verify(message.options,long+1);if(error)return"options."+error}return null};EnumValueDescriptorProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.EnumValueDescriptorProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.EnumValueDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.number!=null)message.number=object.number|0;if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.EnumValueDescriptorProto.options: object expected");message.options=$root.google.protobuf.EnumValueOptions.fromObject(object.options,long+1)}return message};EnumValueDescriptorProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.number=0;object.options=null}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.number!=null&&message.hasOwnProperty("number"))object.number=message.number;if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.EnumValueOptions.toObject(message.options,options);return object};EnumValueDescriptorProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};EnumValueDescriptorProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.EnumValueDescriptorProto"};return EnumValueDescriptorProto}();protobuf.ServiceDescriptorProto=function(){function ServiceDescriptorProto(properties){this.method=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.ServiceDescriptorProto;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{if(!(message.method&&message.method.length))message.method=[];message.method.push($root.google.protobuf.MethodDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{message.options=$root.google.protobuf.ServiceOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ServiceDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ServiceDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.method!=null&&message.hasOwnProperty("method")){if(!Array.isArray(message.method))return"method: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.ServiceDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.method){if(!Array.isArray(object.method))throw TypeError(".google.protobuf.ServiceDescriptorProto.method: array expected");message.method=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.MethodDescriptorProto;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{message.inputType=reader.string();break}case 3:{message.outputType=reader.string();break}case 4:{message.options=$root.google.protobuf.MethodOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.clientStreaming=reader.bool();break}case 6:{message.serverStreaming=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};MethodDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};MethodDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.inputType!=null&&message.hasOwnProperty("inputType"))if(!$util.isString(message.inputType))return"inputType: string expected";if(message.outputType!=null&&message.hasOwnProperty("outputType"))if(!$util.isString(message.outputType))return"outputType: string expected";if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.MethodOptions.verify(message.options,long+1);if(error)return"options."+error}if(message.clientStreaming!=null&&message.hasOwnProperty("clientStreaming"))if(typeof message.clientStreaming!=="boolean")return"clientStreaming: boolean expected";if(message.serverStreaming!=null&&message.hasOwnProperty("serverStreaming"))if(typeof message.serverStreaming!=="boolean")return"serverStreaming: boolean expected";return null};MethodDescriptorProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.MethodDescriptorProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.MethodDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.inputType!=null)message.inputType=String(object.inputType);if(object.outputType!=null)message.outputType=String(object.outputType);if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.MethodDescriptorProto.options: object expected");message.options=$root.google.protobuf.MethodOptions.fromObject(object.options,long+1)}if(object.clientStreaming!=null)message.clientStreaming=Boolean(object.clientStreaming);if(object.serverStreaming!=null)message.serverStreaming=Boolean(object.serverStreaming);return message};MethodDescriptorProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.inputType="";object.outputType="";object.options=null;object.clientStreaming=false;object.serverStreaming=false}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.inputType!=null&&message.hasOwnProperty("inputType"))object.inputType=message.inputType;if(message.outputType!=null&&message.hasOwnProperty("outputType"))object.outputType=message.outputType;if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.MethodOptions.toObject(message.options,options);if(message.clientStreaming!=null&&message.hasOwnProperty("clientStreaming"))object.clientStreaming=message.clientStreaming;if(message.serverStreaming!=null&&message.hasOwnProperty("serverStreaming"))object.serverStreaming=message.serverStreaming;return object};MethodDescriptorProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};MethodDescriptorProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.MethodDescriptorProto"};return MethodDescriptorProto}();protobuf.FileOptions=function(){function FileOptions(properties){this.uninterpretedOption=[];this[".google.api.resourceDefinition"]=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FileOptions;while(reader.pos>>3){case 1:{message.javaPackage=reader.string();break}case 8:{message.javaOuterClassname=reader.string();break}case 10:{message.javaMultipleFiles=reader.bool();break}case 20:{message.javaGenerateEqualsAndHash=reader.bool();break}case 27:{message.javaStringCheckUtf8=reader.bool();break}case 9:{message.optimizeFor=reader.int32();break}case 11:{message.goPackage=reader.string();break}case 16:{message.ccGenericServices=reader.bool();break}case 17:{message.javaGenericServices=reader.bool();break}case 18:{message.pyGenericServices=reader.bool();break}case 23:{message.deprecated=reader.bool();break}case 31:{message.ccEnableArenas=reader.bool();break}case 36:{message.objcClassPrefix=reader.string();break}case 37:{message.csharpNamespace=reader.string();break}case 39:{message.swiftPrefix=reader.string();break}case 40:{message.phpClassPrefix=reader.string();break}case 41:{message.phpNamespace=reader.string();break}case 44:{message.phpMetadataNamespace=reader.string();break}case 45:{message.rubyPackage=reader.string();break}case 50:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}case 1053:{if(!(message[".google.api.resourceDefinition"]&&message[".google.api.resourceDefinition"].length))message[".google.api.resourceDefinition"]=[];message[".google.api.resourceDefinition"].push($root.google.api.ResourceDescriptor.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};FileOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FileOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.javaPackage!=null&&message.hasOwnProperty("javaPackage"))if(!$util.isString(message.javaPackage))return"javaPackage: string expected";if(message.javaOuterClassname!=null&&message.hasOwnProperty("javaOuterClassname"))if(!$util.isString(message.javaOuterClassname))return"javaOuterClassname: string expected";if(message.javaMultipleFiles!=null&&message.hasOwnProperty("javaMultipleFiles"))if(typeof message.javaMultipleFiles!=="boolean")return"javaMultipleFiles: boolean expected";if(message.javaGenerateEqualsAndHash!=null&&message.hasOwnProperty("javaGenerateEqualsAndHash"))if(typeof message.javaGenerateEqualsAndHash!=="boolean")return"javaGenerateEqualsAndHash: boolean expected";if(message.javaStringCheckUtf8!=null&&message.hasOwnProperty("javaStringCheckUtf8"))if(typeof message.javaStringCheckUtf8!=="boolean")return"javaStringCheckUtf8: boolean expected";if(message.optimizeFor!=null&&message.hasOwnProperty("optimizeFor"))switch(message.optimizeFor){default:return"optimizeFor: enum value expected";case 1:case 2:case 3:break}if(message.goPackage!=null&&message.hasOwnProperty("goPackage"))if(!$util.isString(message.goPackage))return"goPackage: string expected";if(message.ccGenericServices!=null&&message.hasOwnProperty("ccGenericServices"))if(typeof message.ccGenericServices!=="boolean")return"ccGenericServices: boolean expected";if(message.javaGenericServices!=null&&message.hasOwnProperty("javaGenericServices"))if(typeof message.javaGenericServices!=="boolean")return"javaGenericServices: boolean expected";if(message.pyGenericServices!=null&&message.hasOwnProperty("pyGenericServices"))if(typeof message.pyGenericServices!=="boolean")return"pyGenericServices: boolean expected";if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.ccEnableArenas!=null&&message.hasOwnProperty("ccEnableArenas"))if(typeof message.ccEnableArenas!=="boolean")return"ccEnableArenas: boolean expected";if(message.objcClassPrefix!=null&&message.hasOwnProperty("objcClassPrefix"))if(!$util.isString(message.objcClassPrefix))return"objcClassPrefix: string expected";if(message.csharpNamespace!=null&&message.hasOwnProperty("csharpNamespace"))if(!$util.isString(message.csharpNamespace))return"csharpNamespace: string expected";if(message.swiftPrefix!=null&&message.hasOwnProperty("swiftPrefix"))if(!$util.isString(message.swiftPrefix))return"swiftPrefix: string expected";if(message.phpClassPrefix!=null&&message.hasOwnProperty("phpClassPrefix"))if(!$util.isString(message.phpClassPrefix))return"phpClassPrefix: string expected";if(message.phpNamespace!=null&&message.hasOwnProperty("phpNamespace"))if(!$util.isString(message.phpNamespace))return"phpNamespace: string expected";if(message.phpMetadataNamespace!=null&&message.hasOwnProperty("phpMetadataNamespace"))if(!$util.isString(message.phpMetadataNamespace))return"phpMetadataNamespace: string expected";if(message.rubyPackage!=null&&message.hasOwnProperty("rubyPackage"))if(!$util.isString(message.rubyPackage))return"rubyPackage: string expected";if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FileOptions;if(object.javaPackage!=null)message.javaPackage=String(object.javaPackage);if(object.javaOuterClassname!=null)message.javaOuterClassname=String(object.javaOuterClassname);if(object.javaMultipleFiles!=null)message.javaMultipleFiles=Boolean(object.javaMultipleFiles);if(object.javaGenerateEqualsAndHash!=null)message.javaGenerateEqualsAndHash=Boolean(object.javaGenerateEqualsAndHash);if(object.javaStringCheckUtf8!=null)message.javaStringCheckUtf8=Boolean(object.javaStringCheckUtf8);switch(object.optimizeFor){default:if(typeof object.optimizeFor==="number"){message.optimizeFor=object.optimizeFor;break}break;case"SPEED":case 1:message.optimizeFor=1;break;case"CODE_SIZE":case 2:message.optimizeFor=2;break;case"LITE_RUNTIME":case 3:message.optimizeFor=3;break}if(object.goPackage!=null)message.goPackage=String(object.goPackage);if(object.ccGenericServices!=null)message.ccGenericServices=Boolean(object.ccGenericServices);if(object.javaGenericServices!=null)message.javaGenericServices=Boolean(object.javaGenericServices);if(object.pyGenericServices!=null)message.pyGenericServices=Boolean(object.pyGenericServices);if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);if(object.ccEnableArenas!=null)message.ccEnableArenas=Boolean(object.ccEnableArenas);if(object.objcClassPrefix!=null)message.objcClassPrefix=String(object.objcClassPrefix);if(object.csharpNamespace!=null)message.csharpNamespace=String(object.csharpNamespace);if(object.swiftPrefix!=null)message.swiftPrefix=String(object.swiftPrefix);if(object.phpClassPrefix!=null)message.phpClassPrefix=String(object.phpClassPrefix);if(object.phpNamespace!=null)message.phpNamespace=String(object.phpNamespace);if(object.phpMetadataNamespace!=null)message.phpMetadataNamespace=String(object.phpMetadataNamespace);if(object.rubyPackage!=null)message.rubyPackage=String(object.rubyPackage);if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.FileOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.FileOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.MessageOptions;while(reader.pos>>3){case 1:{message.messageSetWireFormat=reader.bool();break}case 2:{message.noStandardDescriptorAccessor=reader.bool();break}case 3:{message.deprecated=reader.bool();break}case 7:{message.mapEntry=reader.bool();break}case 11:{message.deprecatedLegacyJsonFieldConflicts=reader.bool();break}case 12:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}case 1053:{message[".google.api.resource"]=$root.google.api.ResourceDescriptor.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};MessageOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};MessageOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.messageSetWireFormat!=null&&message.hasOwnProperty("messageSetWireFormat"))if(typeof message.messageSetWireFormat!=="boolean")return"messageSetWireFormat: boolean expected";if(message.noStandardDescriptorAccessor!=null&&message.hasOwnProperty("noStandardDescriptorAccessor"))if(typeof message.noStandardDescriptorAccessor!=="boolean")return"noStandardDescriptorAccessor: boolean expected";if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.mapEntry!=null&&message.hasOwnProperty("mapEntry"))if(typeof message.mapEntry!=="boolean")return"mapEntry: boolean expected";if(message.deprecatedLegacyJsonFieldConflicts!=null&&message.hasOwnProperty("deprecatedLegacyJsonFieldConflicts"))if(typeof message.deprecatedLegacyJsonFieldConflicts!=="boolean")return"deprecatedLegacyJsonFieldConflicts: boolean expected";if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.MessageOptions;if(object.messageSetWireFormat!=null)message.messageSetWireFormat=Boolean(object.messageSetWireFormat);if(object.noStandardDescriptorAccessor!=null)message.noStandardDescriptorAccessor=Boolean(object.noStandardDescriptorAccessor);if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);if(object.mapEntry!=null)message.mapEntry=Boolean(object.mapEntry);if(object.deprecatedLegacyJsonFieldConflicts!=null)message.deprecatedLegacyJsonFieldConflicts=Boolean(object.deprecatedLegacyJsonFieldConflicts);if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.MessageOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.MessageOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FieldOptions;while(reader.pos>>3){case 1:{message.ctype=reader.int32();break}case 2:{message.packed=reader.bool();break}case 6:{message.jstype=reader.int32();break}case 5:{message.lazy=reader.bool();break}case 15:{message.unverifiedLazy=reader.bool();break}case 3:{message.deprecated=reader.bool();break}case 10:{message.weak=reader.bool();break}case 16:{message.debugRedact=reader.bool();break}case 17:{message.retention=reader.int32();break}case 19:{if(!(message.targets&&message.targets.length))message.targets=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos$util.recursionLimit)return"maximum nesting depth exceeded";if(message.ctype!=null&&message.hasOwnProperty("ctype"))switch(message.ctype){default:return"ctype: enum value expected";case 0:case 1:case 2:break}if(message.packed!=null&&message.hasOwnProperty("packed"))if(typeof message.packed!=="boolean")return"packed: boolean expected";if(message.jstype!=null&&message.hasOwnProperty("jstype"))switch(message.jstype){default:return"jstype: enum value expected";case 0:case 1:case 2:break}if(message.lazy!=null&&message.hasOwnProperty("lazy"))if(typeof message.lazy!=="boolean")return"lazy: boolean expected";if(message.unverifiedLazy!=null&&message.hasOwnProperty("unverifiedLazy"))if(typeof message.unverifiedLazy!=="boolean")return"unverifiedLazy: boolean expected";if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.weak!=null&&message.hasOwnProperty("weak"))if(typeof message.weak!=="boolean")return"weak: boolean expected";if(message.debugRedact!=null&&message.hasOwnProperty("debugRedact"))if(typeof message.debugRedact!=="boolean")return"debugRedact: boolean expected";if(message.retention!=null&&message.hasOwnProperty("retention"))switch(message.retention){default:return"retention: enum value expected";case 0:case 1:case 2:break}if(message.targets!=null&&message.hasOwnProperty("targets")){if(!Array.isArray(message.targets))return"targets: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FieldOptions;switch(object.ctype){default:if(typeof object.ctype==="number"){message.ctype=object.ctype;break}break;case"STRING":case 0:message.ctype=0;break;case"CORD":case 1:message.ctype=1;break;case"STRING_PIECE":case 2:message.ctype=2;break}if(object.packed!=null)message.packed=Boolean(object.packed);switch(object.jstype){default:if(typeof object.jstype==="number"){message.jstype=object.jstype;break}break;case"JS_NORMAL":case 0:message.jstype=0;break;case"JS_STRING":case 1:message.jstype=1;break;case"JS_NUMBER":case 2:message.jstype=2;break}if(object.lazy!=null)message.lazy=Boolean(object.lazy);if(object.unverifiedLazy!=null)message.unverifiedLazy=Boolean(object.unverifiedLazy);if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);if(object.weak!=null)message.weak=Boolean(object.weak);if(object.debugRedact!=null)message.debugRedact=Boolean(object.debugRedact);switch(object.retention){default:if(typeof object.retention==="number"){message.retention=object.retention;break}break;case"RETENTION_UNKNOWN":case 0:message.retention=0;break;case"RETENTION_RUNTIME":case 1:message.retention=1;break;case"RETENTION_SOURCE":case 2:message.retention=2;break}if(object.targets){if(!Array.isArray(object.targets))throw TypeError(".google.protobuf.FieldOptions.targets: array expected");message.targets=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FieldOptions.EditionDefault;while(reader.pos>>3){case 3:{message.edition=reader.int32();break}case 2:{message.value=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};EditionDefault.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EditionDefault.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.edition!=null&&message.hasOwnProperty("edition"))switch(message.edition){default:return"edition: enum value expected";case 0:case 900:case 998:case 999:case 1e3:case 1001:case 1:case 2:case 99997:case 99998:case 99999:case 2147483647:break}if(message.value!=null&&message.hasOwnProperty("value"))if(!$util.isString(message.value))return"value: string expected";return null};EditionDefault.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FieldOptions.EditionDefault)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FieldOptions.EditionDefault;switch(object.edition){default:if(typeof object.edition==="number"){message.edition=object.edition;break}break;case"EDITION_UNKNOWN":case 0:message.edition=0;break;case"EDITION_LEGACY":case 900:message.edition=900;break;case"EDITION_PROTO2":case 998:message.edition=998;break;case"EDITION_PROTO3":case 999:message.edition=999;break;case"EDITION_2023":case 1e3:message.edition=1e3;break;case"EDITION_2024":case 1001:message.edition=1001;break;case"EDITION_1_TEST_ONLY":case 1:message.edition=1;break;case"EDITION_2_TEST_ONLY":case 2:message.edition=2;break;case"EDITION_99997_TEST_ONLY":case 99997:message.edition=99997;break;case"EDITION_99998_TEST_ONLY":case 99998:message.edition=99998;break;case"EDITION_99999_TEST_ONLY":case 99999:message.edition=99999;break;case"EDITION_MAX":case 2147483647:message.edition=2147483647;break}if(object.value!=null)message.value=String(object.value);return message};EditionDefault.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.value="";object.edition=options.enums===String?"EDITION_UNKNOWN":0}if(message.value!=null&&message.hasOwnProperty("value"))object.value=message.value;if(message.edition!=null&&message.hasOwnProperty("edition"))object.edition=options.enums===String?$root.google.protobuf.Edition[message.edition]===undefined?message.edition:$root.google.protobuf.Edition[message.edition]:message.edition;return object};EditionDefault.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};EditionDefault.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FieldOptions.EditionDefault"};return EditionDefault}();FieldOptions.FeatureSupport=function(){function FeatureSupport(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FieldOptions.FeatureSupport;while(reader.pos>>3){case 1:{message.editionIntroduced=reader.int32();break}case 2:{message.editionDeprecated=reader.int32();break}case 3:{message.deprecationWarning=reader.string();break}case 4:{message.editionRemoved=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};FeatureSupport.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FeatureSupport.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.editionIntroduced!=null&&message.hasOwnProperty("editionIntroduced"))switch(message.editionIntroduced){default:return"editionIntroduced: enum value expected";case 0:case 900:case 998:case 999:case 1e3:case 1001:case 1:case 2:case 99997:case 99998:case 99999:case 2147483647:break}if(message.editionDeprecated!=null&&message.hasOwnProperty("editionDeprecated"))switch(message.editionDeprecated){default:return"editionDeprecated: enum value expected";case 0:case 900:case 998:case 999:case 1e3:case 1001:case 1:case 2:case 99997:case 99998:case 99999:case 2147483647:break}if(message.deprecationWarning!=null&&message.hasOwnProperty("deprecationWarning"))if(!$util.isString(message.deprecationWarning))return"deprecationWarning: string expected";if(message.editionRemoved!=null&&message.hasOwnProperty("editionRemoved"))switch(message.editionRemoved){default:return"editionRemoved: enum value expected";case 0:case 900:case 998:case 999:case 1e3:case 1001:case 1:case 2:case 99997:case 99998:case 99999:case 2147483647:break}return null};FeatureSupport.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FieldOptions.FeatureSupport)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FieldOptions.FeatureSupport;switch(object.editionIntroduced){default:if(typeof object.editionIntroduced==="number"){message.editionIntroduced=object.editionIntroduced;break}break;case"EDITION_UNKNOWN":case 0:message.editionIntroduced=0;break;case"EDITION_LEGACY":case 900:message.editionIntroduced=900;break;case"EDITION_PROTO2":case 998:message.editionIntroduced=998;break;case"EDITION_PROTO3":case 999:message.editionIntroduced=999;break;case"EDITION_2023":case 1e3:message.editionIntroduced=1e3;break;case"EDITION_2024":case 1001:message.editionIntroduced=1001;break;case"EDITION_1_TEST_ONLY":case 1:message.editionIntroduced=1;break;case"EDITION_2_TEST_ONLY":case 2:message.editionIntroduced=2;break;case"EDITION_99997_TEST_ONLY":case 99997:message.editionIntroduced=99997;break;case"EDITION_99998_TEST_ONLY":case 99998:message.editionIntroduced=99998;break;case"EDITION_99999_TEST_ONLY":case 99999:message.editionIntroduced=99999;break;case"EDITION_MAX":case 2147483647:message.editionIntroduced=2147483647;break}switch(object.editionDeprecated){default:if(typeof object.editionDeprecated==="number"){message.editionDeprecated=object.editionDeprecated;break}break;case"EDITION_UNKNOWN":case 0:message.editionDeprecated=0;break;case"EDITION_LEGACY":case 900:message.editionDeprecated=900;break;case"EDITION_PROTO2":case 998:message.editionDeprecated=998;break;case"EDITION_PROTO3":case 999:message.editionDeprecated=999;break;case"EDITION_2023":case 1e3:message.editionDeprecated=1e3;break;case"EDITION_2024":case 1001:message.editionDeprecated=1001;break;case"EDITION_1_TEST_ONLY":case 1:message.editionDeprecated=1;break;case"EDITION_2_TEST_ONLY":case 2:message.editionDeprecated=2;break;case"EDITION_99997_TEST_ONLY":case 99997:message.editionDeprecated=99997;break;case"EDITION_99998_TEST_ONLY":case 99998:message.editionDeprecated=99998;break;case"EDITION_99999_TEST_ONLY":case 99999:message.editionDeprecated=99999;break;case"EDITION_MAX":case 2147483647:message.editionDeprecated=2147483647;break}if(object.deprecationWarning!=null)message.deprecationWarning=String(object.deprecationWarning);switch(object.editionRemoved){default:if(typeof object.editionRemoved==="number"){message.editionRemoved=object.editionRemoved;break}break;case"EDITION_UNKNOWN":case 0:message.editionRemoved=0;break;case"EDITION_LEGACY":case 900:message.editionRemoved=900;break;case"EDITION_PROTO2":case 998:message.editionRemoved=998;break;case"EDITION_PROTO3":case 999:message.editionRemoved=999;break;case"EDITION_2023":case 1e3:message.editionRemoved=1e3;break;case"EDITION_2024":case 1001:message.editionRemoved=1001;break;case"EDITION_1_TEST_ONLY":case 1:message.editionRemoved=1;break;case"EDITION_2_TEST_ONLY":case 2:message.editionRemoved=2;break;case"EDITION_99997_TEST_ONLY":case 99997:message.editionRemoved=99997;break;case"EDITION_99998_TEST_ONLY":case 99998:message.editionRemoved=99998;break;case"EDITION_99999_TEST_ONLY":case 99999:message.editionRemoved=99999;break;case"EDITION_MAX":case 2147483647:message.editionRemoved=2147483647;break}return message};FeatureSupport.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.editionIntroduced=options.enums===String?"EDITION_UNKNOWN":0;object.editionDeprecated=options.enums===String?"EDITION_UNKNOWN":0;object.deprecationWarning="";object.editionRemoved=options.enums===String?"EDITION_UNKNOWN":0}if(message.editionIntroduced!=null&&message.hasOwnProperty("editionIntroduced"))object.editionIntroduced=options.enums===String?$root.google.protobuf.Edition[message.editionIntroduced]===undefined?message.editionIntroduced:$root.google.protobuf.Edition[message.editionIntroduced]:message.editionIntroduced;if(message.editionDeprecated!=null&&message.hasOwnProperty("editionDeprecated"))object.editionDeprecated=options.enums===String?$root.google.protobuf.Edition[message.editionDeprecated]===undefined?message.editionDeprecated:$root.google.protobuf.Edition[message.editionDeprecated]:message.editionDeprecated;if(message.deprecationWarning!=null&&message.hasOwnProperty("deprecationWarning"))object.deprecationWarning=message.deprecationWarning;if(message.editionRemoved!=null&&message.hasOwnProperty("editionRemoved"))object.editionRemoved=options.enums===String?$root.google.protobuf.Edition[message.editionRemoved]===undefined?message.editionRemoved:$root.google.protobuf.Edition[message.editionRemoved]:message.editionRemoved;return object};FeatureSupport.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FeatureSupport.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FieldOptions.FeatureSupport"};return FeatureSupport}();return FieldOptions}();protobuf.OneofOptions=function(){function OneofOptions(properties){this.uninterpretedOption=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.OneofOptions;while(reader.pos>>3){case 1:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};OneofOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};OneofOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.OneofOptions;if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.OneofOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.OneofOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.EnumOptions;while(reader.pos>>3){case 2:{message.allowAlias=reader.bool();break}case 3:{message.deprecated=reader.bool();break}case 6:{message.deprecatedLegacyJsonFieldConflicts=reader.bool();break}case 7:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};EnumOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EnumOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.allowAlias!=null&&message.hasOwnProperty("allowAlias"))if(typeof message.allowAlias!=="boolean")return"allowAlias: boolean expected";if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.deprecatedLegacyJsonFieldConflicts!=null&&message.hasOwnProperty("deprecatedLegacyJsonFieldConflicts"))if(typeof message.deprecatedLegacyJsonFieldConflicts!=="boolean")return"deprecatedLegacyJsonFieldConflicts: boolean expected";if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.EnumOptions;if(object.allowAlias!=null)message.allowAlias=Boolean(object.allowAlias);if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);if(object.deprecatedLegacyJsonFieldConflicts!=null)message.deprecatedLegacyJsonFieldConflicts=Boolean(object.deprecatedLegacyJsonFieldConflicts);if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.EnumOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.EnumOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.EnumValueOptions;while(reader.pos>>3){case 1:{message.deprecated=reader.bool();break}case 2:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.debugRedact=reader.bool();break}case 4:{message.featureSupport=$root.google.protobuf.FieldOptions.FeatureSupport.decode(reader,reader.uint32(),undefined,long+1);break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};EnumValueOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EnumValueOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.debugRedact!=null&&message.hasOwnProperty("debugRedact"))if(typeof message.debugRedact!=="boolean")return"debugRedact: boolean expected";if(message.featureSupport!=null&&message.hasOwnProperty("featureSupport")){var error=$root.google.protobuf.FieldOptions.FeatureSupport.verify(message.featureSupport,long+1);if(error)return"featureSupport."+error}if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.EnumValueOptions;if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.EnumValueOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.debugRedact!=null)message.debugRedact=Boolean(object.debugRedact);if(object.featureSupport!=null){if(typeof object.featureSupport!=="object")throw TypeError(".google.protobuf.EnumValueOptions.featureSupport: object expected");message.featureSupport=$root.google.protobuf.FieldOptions.FeatureSupport.fromObject(object.featureSupport,long+1)}if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.EnumValueOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.ServiceOptions;while(reader.pos>>3){case 34:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 33:{message.deprecated=reader.bool();break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}case 1049:{message[".google.api.defaultHost"]=reader.string();break}case 1050:{message[".google.api.oauthScopes"]=reader.string();break}case 525000001:{message[".google.api.apiVersion"]=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ServiceOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ServiceOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.ServiceOptions;if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.ServiceOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.ServiceOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.MethodOptions;while(reader.pos>>3){case 33:{message.deprecated=reader.bool();break}case 34:{message.idempotencyLevel=reader.int32();break}case 35:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}case 72295728:{message[".google.api.http"]=$root.google.api.HttpRule.decode(reader,reader.uint32(),undefined,long+1);break}case 1051:{if(!(message[".google.api.methodSignature"]&&message[".google.api.methodSignature"].length))message[".google.api.methodSignature"]=[];message[".google.api.methodSignature"].push(reader.string());break}case 72295729:{message[".google.api.routing"]=$root.google.api.RoutingRule.decode(reader,reader.uint32(),undefined,long+1);break}case 1049:{message[".google.longrunning.operationInfo"]=$root.google.longrunning.OperationInfo.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};MethodOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};MethodOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.idempotencyLevel!=null&&message.hasOwnProperty("idempotencyLevel"))switch(message.idempotencyLevel){default:return"idempotencyLevel: enum value expected";case 0:case 1:case 2:break}if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.MethodOptions;if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);switch(object.idempotencyLevel){default:if(typeof object.idempotencyLevel==="number"){message.idempotencyLevel=object.idempotencyLevel;break}break;case"IDEMPOTENCY_UNKNOWN":case 0:message.idempotencyLevel=0;break;case"NO_SIDE_EFFECTS":case 1:message.idempotencyLevel=1;break;case"IDEMPOTENT":case 2:message.idempotencyLevel=2;break}if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.MethodOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.MethodOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.UninterpretedOption;while(reader.pos>>3){case 2:{if(!(message.name&&message.name.length))message.name=[];message.name.push($root.google.protobuf.UninterpretedOption.NamePart.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{message.identifierValue=reader.string();break}case 4:{message.positiveIntValue=reader.uint64();break}case 5:{message.negativeIntValue=reader.int64();break}case 6:{message.doubleValue=reader.double();break}case 7:{message.stringValue=reader.bytes();break}case 8:{message.aggregateValue=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};UninterpretedOption.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UninterpretedOption.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name")){if(!Array.isArray(message.name))return"name: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.UninterpretedOption;if(object.name){if(!Array.isArray(object.name))throw TypeError(".google.protobuf.UninterpretedOption.name: array expected");message.name=[];for(var i=0;i>>0,object.positiveIntValue.high>>>0).toNumber(true);if(object.negativeIntValue!=null)if($util.Long)(message.negativeIntValue=$util.Long.fromValue(object.negativeIntValue)).unsigned=false;else if(typeof object.negativeIntValue==="string")message.negativeIntValue=parseInt(object.negativeIntValue,10);else if(typeof object.negativeIntValue==="number")message.negativeIntValue=object.negativeIntValue;else if(typeof object.negativeIntValue==="object")message.negativeIntValue=new $util.LongBits(object.negativeIntValue.low>>>0,object.negativeIntValue.high>>>0).toNumber();if(object.doubleValue!=null)message.doubleValue=Number(object.doubleValue);if(object.stringValue!=null)if(typeof object.stringValue==="string")$util.base64.decode(object.stringValue,message.stringValue=$util.newBuffer($util.base64.length(object.stringValue)),0);else if(object.stringValue.length>=0)message.stringValue=object.stringValue;if(object.aggregateValue!=null)message.aggregateValue=String(object.aggregateValue);return message};UninterpretedOption.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.name=[];if(options.defaults){object.identifierValue="";if($util.Long){var long=new $util.Long(0,0,true);object.positiveIntValue=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.positiveIntValue=options.longs===String?"0":0;if($util.Long){var long=new $util.Long(0,0,false);object.negativeIntValue=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.negativeIntValue=options.longs===String?"0":0;object.doubleValue=0;if(options.bytes===String)object.stringValue="";else{object.stringValue=[];if(options.bytes!==Array)object.stringValue=$util.newBuffer(object.stringValue)}object.aggregateValue=""}if(message.name&&message.name.length){object.name=[];for(var j=0;j>>0,message.positiveIntValue.high>>>0).toNumber(true):message.positiveIntValue;if(message.negativeIntValue!=null&&message.hasOwnProperty("negativeIntValue"))if(typeof message.negativeIntValue==="number")object.negativeIntValue=options.longs===String?String(message.negativeIntValue):message.negativeIntValue;else object.negativeIntValue=options.longs===String?$util.Long.prototype.toString.call(message.negativeIntValue):options.longs===Number?new $util.LongBits(message.negativeIntValue.low>>>0,message.negativeIntValue.high>>>0).toNumber():message.negativeIntValue;if(message.doubleValue!=null&&message.hasOwnProperty("doubleValue"))object.doubleValue=options.json&&!isFinite(message.doubleValue)?String(message.doubleValue):message.doubleValue;if(message.stringValue!=null&&message.hasOwnProperty("stringValue"))object.stringValue=options.bytes===String?$util.base64.encode(message.stringValue,0,message.stringValue.length):options.bytes===Array?Array.prototype.slice.call(message.stringValue):message.stringValue;if(message.aggregateValue!=null&&message.hasOwnProperty("aggregateValue"))object.aggregateValue=message.aggregateValue;return object};UninterpretedOption.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UninterpretedOption.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.UninterpretedOption"};UninterpretedOption.NamePart=function(){function NamePart(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.UninterpretedOption.NamePart;while(reader.pos>>3){case 1:{message.namePart=reader.string();break}case 2:{message.isExtension=reader.bool();break}default:reader.skipType(tag&7,long);break}}if(!message.hasOwnProperty("namePart"))throw $util.ProtocolError("missing required 'namePart'",{instance:message});if(!message.hasOwnProperty("isExtension"))throw $util.ProtocolError("missing required 'isExtension'",{instance:message});return message};NamePart.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};NamePart.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(!$util.isString(message.namePart))return"namePart: string expected";if(typeof message.isExtension!=="boolean")return"isExtension: boolean expected";return null};NamePart.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.UninterpretedOption.NamePart)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.UninterpretedOption.NamePart;if(object.namePart!=null)message.namePart=String(object.namePart);if(object.isExtension!=null)message.isExtension=Boolean(object.isExtension);return message};NamePart.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.namePart="";object.isExtension=false}if(message.namePart!=null&&message.hasOwnProperty("namePart"))object.namePart=message.namePart;if(message.isExtension!=null&&message.hasOwnProperty("isExtension"))object.isExtension=message.isExtension;return object};NamePart.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};NamePart.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.UninterpretedOption.NamePart"};return NamePart}();return UninterpretedOption}();protobuf.FeatureSet=function(){function FeatureSet(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FeatureSet;while(reader.pos>>3){case 1:{message.fieldPresence=reader.int32();break}case 2:{message.enumType=reader.int32();break}case 3:{message.repeatedFieldEncoding=reader.int32();break}case 4:{message.utf8Validation=reader.int32();break}case 5:{message.messageEncoding=reader.int32();break}case 6:{message.jsonFormat=reader.int32();break}case 7:{message.enforceNamingStyle=reader.int32();break}case 8:{message.defaultSymbolVisibility=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};FeatureSet.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FeatureSet.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.fieldPresence!=null&&message.hasOwnProperty("fieldPresence"))switch(message.fieldPresence){default:return"fieldPresence: enum value expected";case 0:case 1:case 2:case 3:break}if(message.enumType!=null&&message.hasOwnProperty("enumType"))switch(message.enumType){default:return"enumType: enum value expected";case 0:case 1:case 2:break}if(message.repeatedFieldEncoding!=null&&message.hasOwnProperty("repeatedFieldEncoding"))switch(message.repeatedFieldEncoding){default:return"repeatedFieldEncoding: enum value expected";case 0:case 1:case 2:break}if(message.utf8Validation!=null&&message.hasOwnProperty("utf8Validation"))switch(message.utf8Validation){default:return"utf8Validation: enum value expected";case 0:case 2:case 3:break}if(message.messageEncoding!=null&&message.hasOwnProperty("messageEncoding"))switch(message.messageEncoding){default:return"messageEncoding: enum value expected";case 0:case 1:case 2:break}if(message.jsonFormat!=null&&message.hasOwnProperty("jsonFormat"))switch(message.jsonFormat){default:return"jsonFormat: enum value expected";case 0:case 1:case 2:break}if(message.enforceNamingStyle!=null&&message.hasOwnProperty("enforceNamingStyle"))switch(message.enforceNamingStyle){default:return"enforceNamingStyle: enum value expected";case 0:case 1:case 2:break}if(message.defaultSymbolVisibility!=null&&message.hasOwnProperty("defaultSymbolVisibility"))switch(message.defaultSymbolVisibility){default:return"defaultSymbolVisibility: enum value expected";case 0:case 1:case 2:case 3:case 4:break}return null};FeatureSet.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FeatureSet)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FeatureSet;switch(object.fieldPresence){default:if(typeof object.fieldPresence==="number"){message.fieldPresence=object.fieldPresence;break}break;case"FIELD_PRESENCE_UNKNOWN":case 0:message.fieldPresence=0;break;case"EXPLICIT":case 1:message.fieldPresence=1;break;case"IMPLICIT":case 2:message.fieldPresence=2;break;case"LEGACY_REQUIRED":case 3:message.fieldPresence=3;break}switch(object.enumType){default:if(typeof object.enumType==="number"){message.enumType=object.enumType;break}break;case"ENUM_TYPE_UNKNOWN":case 0:message.enumType=0;break;case"OPEN":case 1:message.enumType=1;break;case"CLOSED":case 2:message.enumType=2;break}switch(object.repeatedFieldEncoding){default:if(typeof object.repeatedFieldEncoding==="number"){message.repeatedFieldEncoding=object.repeatedFieldEncoding;break}break;case"REPEATED_FIELD_ENCODING_UNKNOWN":case 0:message.repeatedFieldEncoding=0;break;case"PACKED":case 1:message.repeatedFieldEncoding=1;break;case"EXPANDED":case 2:message.repeatedFieldEncoding=2;break}switch(object.utf8Validation){default:if(typeof object.utf8Validation==="number"){message.utf8Validation=object.utf8Validation;break}break;case"UTF8_VALIDATION_UNKNOWN":case 0:message.utf8Validation=0;break;case"VERIFY":case 2:message.utf8Validation=2;break;case"NONE":case 3:message.utf8Validation=3;break}switch(object.messageEncoding){default:if(typeof object.messageEncoding==="number"){message.messageEncoding=object.messageEncoding;break}break;case"MESSAGE_ENCODING_UNKNOWN":case 0:message.messageEncoding=0;break;case"LENGTH_PREFIXED":case 1:message.messageEncoding=1;break;case"DELIMITED":case 2:message.messageEncoding=2;break}switch(object.jsonFormat){default:if(typeof object.jsonFormat==="number"){message.jsonFormat=object.jsonFormat;break}break;case"JSON_FORMAT_UNKNOWN":case 0:message.jsonFormat=0;break;case"ALLOW":case 1:message.jsonFormat=1;break;case"LEGACY_BEST_EFFORT":case 2:message.jsonFormat=2;break}switch(object.enforceNamingStyle){default:if(typeof object.enforceNamingStyle==="number"){message.enforceNamingStyle=object.enforceNamingStyle;break}break;case"ENFORCE_NAMING_STYLE_UNKNOWN":case 0:message.enforceNamingStyle=0;break;case"STYLE2024":case 1:message.enforceNamingStyle=1;break;case"STYLE_LEGACY":case 2:message.enforceNamingStyle=2;break}switch(object.defaultSymbolVisibility){default:if(typeof object.defaultSymbolVisibility==="number"){message.defaultSymbolVisibility=object.defaultSymbolVisibility;break}break;case"DEFAULT_SYMBOL_VISIBILITY_UNKNOWN":case 0:message.defaultSymbolVisibility=0;break;case"EXPORT_ALL":case 1:message.defaultSymbolVisibility=1;break;case"EXPORT_TOP_LEVEL":case 2:message.defaultSymbolVisibility=2;break;case"LOCAL_ALL":case 3:message.defaultSymbolVisibility=3;break;case"STRICT":case 4:message.defaultSymbolVisibility=4;break}return message};FeatureSet.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.fieldPresence=options.enums===String?"FIELD_PRESENCE_UNKNOWN":0;object.enumType=options.enums===String?"ENUM_TYPE_UNKNOWN":0;object.repeatedFieldEncoding=options.enums===String?"REPEATED_FIELD_ENCODING_UNKNOWN":0;object.utf8Validation=options.enums===String?"UTF8_VALIDATION_UNKNOWN":0;object.messageEncoding=options.enums===String?"MESSAGE_ENCODING_UNKNOWN":0;object.jsonFormat=options.enums===String?"JSON_FORMAT_UNKNOWN":0;object.enforceNamingStyle=options.enums===String?"ENFORCE_NAMING_STYLE_UNKNOWN":0;object.defaultSymbolVisibility=options.enums===String?"DEFAULT_SYMBOL_VISIBILITY_UNKNOWN":0}if(message.fieldPresence!=null&&message.hasOwnProperty("fieldPresence"))object.fieldPresence=options.enums===String?$root.google.protobuf.FeatureSet.FieldPresence[message.fieldPresence]===undefined?message.fieldPresence:$root.google.protobuf.FeatureSet.FieldPresence[message.fieldPresence]:message.fieldPresence;if(message.enumType!=null&&message.hasOwnProperty("enumType"))object.enumType=options.enums===String?$root.google.protobuf.FeatureSet.EnumType[message.enumType]===undefined?message.enumType:$root.google.protobuf.FeatureSet.EnumType[message.enumType]:message.enumType;if(message.repeatedFieldEncoding!=null&&message.hasOwnProperty("repeatedFieldEncoding"))object.repeatedFieldEncoding=options.enums===String?$root.google.protobuf.FeatureSet.RepeatedFieldEncoding[message.repeatedFieldEncoding]===undefined?message.repeatedFieldEncoding:$root.google.protobuf.FeatureSet.RepeatedFieldEncoding[message.repeatedFieldEncoding]:message.repeatedFieldEncoding;if(message.utf8Validation!=null&&message.hasOwnProperty("utf8Validation"))object.utf8Validation=options.enums===String?$root.google.protobuf.FeatureSet.Utf8Validation[message.utf8Validation]===undefined?message.utf8Validation:$root.google.protobuf.FeatureSet.Utf8Validation[message.utf8Validation]:message.utf8Validation;if(message.messageEncoding!=null&&message.hasOwnProperty("messageEncoding"))object.messageEncoding=options.enums===String?$root.google.protobuf.FeatureSet.MessageEncoding[message.messageEncoding]===undefined?message.messageEncoding:$root.google.protobuf.FeatureSet.MessageEncoding[message.messageEncoding]:message.messageEncoding;if(message.jsonFormat!=null&&message.hasOwnProperty("jsonFormat"))object.jsonFormat=options.enums===String?$root.google.protobuf.FeatureSet.JsonFormat[message.jsonFormat]===undefined?message.jsonFormat:$root.google.protobuf.FeatureSet.JsonFormat[message.jsonFormat]:message.jsonFormat;if(message.enforceNamingStyle!=null&&message.hasOwnProperty("enforceNamingStyle"))object.enforceNamingStyle=options.enums===String?$root.google.protobuf.FeatureSet.EnforceNamingStyle[message.enforceNamingStyle]===undefined?message.enforceNamingStyle:$root.google.protobuf.FeatureSet.EnforceNamingStyle[message.enforceNamingStyle]:message.enforceNamingStyle;if(message.defaultSymbolVisibility!=null&&message.hasOwnProperty("defaultSymbolVisibility"))object.defaultSymbolVisibility=options.enums===String?$root.google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility[message.defaultSymbolVisibility]===undefined?message.defaultSymbolVisibility:$root.google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility[message.defaultSymbolVisibility]:message.defaultSymbolVisibility;return object};FeatureSet.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FeatureSet.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FeatureSet"};FeatureSet.FieldPresence=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="FIELD_PRESENCE_UNKNOWN"]=0;values[valuesById[1]="EXPLICIT"]=1;values[valuesById[2]="IMPLICIT"]=2;values[valuesById[3]="LEGACY_REQUIRED"]=3;return values}();FeatureSet.EnumType=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="ENUM_TYPE_UNKNOWN"]=0;values[valuesById[1]="OPEN"]=1;values[valuesById[2]="CLOSED"]=2;return values}();FeatureSet.RepeatedFieldEncoding=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="REPEATED_FIELD_ENCODING_UNKNOWN"]=0;values[valuesById[1]="PACKED"]=1;values[valuesById[2]="EXPANDED"]=2;return values}();FeatureSet.Utf8Validation=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="UTF8_VALIDATION_UNKNOWN"]=0;values[valuesById[2]="VERIFY"]=2;values[valuesById[3]="NONE"]=3;return values}();FeatureSet.MessageEncoding=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="MESSAGE_ENCODING_UNKNOWN"]=0;values[valuesById[1]="LENGTH_PREFIXED"]=1;values[valuesById[2]="DELIMITED"]=2;return values}();FeatureSet.JsonFormat=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="JSON_FORMAT_UNKNOWN"]=0;values[valuesById[1]="ALLOW"]=1;values[valuesById[2]="LEGACY_BEST_EFFORT"]=2;return values}();FeatureSet.EnforceNamingStyle=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="ENFORCE_NAMING_STYLE_UNKNOWN"]=0;values[valuesById[1]="STYLE2024"]=1;values[valuesById[2]="STYLE_LEGACY"]=2;return values}();FeatureSet.VisibilityFeature=function(){function VisibilityFeature(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FeatureSet.VisibilityFeature;while(reader.pos>>3){default:reader.skipType(tag&7,long);break}}return message};VisibilityFeature.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};VisibilityFeature.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};VisibilityFeature.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FeatureSet.VisibilityFeature)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.protobuf.FeatureSet.VisibilityFeature};VisibilityFeature.toObject=function toObject(){return{}};VisibilityFeature.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};VisibilityFeature.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FeatureSet.VisibilityFeature"};VisibilityFeature.DefaultSymbolVisibility=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="DEFAULT_SYMBOL_VISIBILITY_UNKNOWN"]=0;values[valuesById[1]="EXPORT_ALL"]=1;values[valuesById[2]="EXPORT_TOP_LEVEL"]=2;values[valuesById[3]="LOCAL_ALL"]=3;values[valuesById[4]="STRICT"]=4;return values}();return VisibilityFeature}();return FeatureSet}();protobuf.FeatureSetDefaults=function(){function FeatureSetDefaults(properties){this.defaults=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FeatureSetDefaults;while(reader.pos>>3){case 1:{if(!(message.defaults&&message.defaults.length))message.defaults=[];message.defaults.push($root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.decode(reader,reader.uint32(),undefined,long+1));break}case 4:{message.minimumEdition=reader.int32();break}case 5:{message.maximumEdition=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};FeatureSetDefaults.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FeatureSetDefaults.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.defaults!=null&&message.hasOwnProperty("defaults")){if(!Array.isArray(message.defaults))return"defaults: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FeatureSetDefaults;if(object.defaults){if(!Array.isArray(object.defaults))throw TypeError(".google.protobuf.FeatureSetDefaults.defaults: array expected");message.defaults=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault;while(reader.pos>>3){case 3:{message.edition=reader.int32();break}case 4:{message.overridableFeatures=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.fixedFeatures=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};FeatureSetEditionDefault.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FeatureSetEditionDefault.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.edition!=null&&message.hasOwnProperty("edition"))switch(message.edition){default:return"edition: enum value expected";case 0:case 900:case 998:case 999:case 1e3:case 1001:case 1:case 2:case 99997:case 99998:case 99999:case 2147483647:break}if(message.overridableFeatures!=null&&message.hasOwnProperty("overridableFeatures")){var error=$root.google.protobuf.FeatureSet.verify(message.overridableFeatures,long+1);if(error)return"overridableFeatures."+error}if(message.fixedFeatures!=null&&message.hasOwnProperty("fixedFeatures")){var error=$root.google.protobuf.FeatureSet.verify(message.fixedFeatures,long+1);if(error)return"fixedFeatures."+error}return null};FeatureSetEditionDefault.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault;switch(object.edition){default:if(typeof object.edition==="number"){message.edition=object.edition;break}break;case"EDITION_UNKNOWN":case 0:message.edition=0;break;case"EDITION_LEGACY":case 900:message.edition=900;break;case"EDITION_PROTO2":case 998:message.edition=998;break;case"EDITION_PROTO3":case 999:message.edition=999;break;case"EDITION_2023":case 1e3:message.edition=1e3;break;case"EDITION_2024":case 1001:message.edition=1001;break;case"EDITION_1_TEST_ONLY":case 1:message.edition=1;break;case"EDITION_2_TEST_ONLY":case 2:message.edition=2;break;case"EDITION_99997_TEST_ONLY":case 99997:message.edition=99997;break;case"EDITION_99998_TEST_ONLY":case 99998:message.edition=99998;break;case"EDITION_99999_TEST_ONLY":case 99999:message.edition=99999;break;case"EDITION_MAX":case 2147483647:message.edition=2147483647;break}if(object.overridableFeatures!=null){if(typeof object.overridableFeatures!=="object")throw TypeError(".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.overridableFeatures: object expected");message.overridableFeatures=$root.google.protobuf.FeatureSet.fromObject(object.overridableFeatures,long+1)}if(object.fixedFeatures!=null){if(typeof object.fixedFeatures!=="object")throw TypeError(".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.fixedFeatures: object expected");message.fixedFeatures=$root.google.protobuf.FeatureSet.fromObject(object.fixedFeatures,long+1)}return message};FeatureSetEditionDefault.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.edition=options.enums===String?"EDITION_UNKNOWN":0;object.overridableFeatures=null;object.fixedFeatures=null}if(message.edition!=null&&message.hasOwnProperty("edition"))object.edition=options.enums===String?$root.google.protobuf.Edition[message.edition]===undefined?message.edition:$root.google.protobuf.Edition[message.edition]:message.edition;if(message.overridableFeatures!=null&&message.hasOwnProperty("overridableFeatures"))object.overridableFeatures=$root.google.protobuf.FeatureSet.toObject(message.overridableFeatures,options);if(message.fixedFeatures!=null&&message.hasOwnProperty("fixedFeatures"))object.fixedFeatures=$root.google.protobuf.FeatureSet.toObject(message.fixedFeatures,options);return object};FeatureSetEditionDefault.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FeatureSetEditionDefault.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault"};return FeatureSetEditionDefault}();return FeatureSetDefaults}();protobuf.SourceCodeInfo=function(){function SourceCodeInfo(properties){this.location=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.SourceCodeInfo;while(reader.pos>>3){case 1:{if(!(message.location&&message.location.length))message.location=[];message.location.push($root.google.protobuf.SourceCodeInfo.Location.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};SourceCodeInfo.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};SourceCodeInfo.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.location!=null&&message.hasOwnProperty("location")){if(!Array.isArray(message.location))return"location: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.SourceCodeInfo;if(object.location){if(!Array.isArray(object.location))throw TypeError(".google.protobuf.SourceCodeInfo.location: array expected");message.location=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.SourceCodeInfo.Location;while(reader.pos>>3){case 1:{if(!(message.path&&message.path.length))message.path=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos$util.recursionLimit)return"maximum nesting depth exceeded";if(message.path!=null&&message.hasOwnProperty("path")){if(!Array.isArray(message.path))return"path: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.SourceCodeInfo.Location;if(object.path){if(!Array.isArray(object.path))throw TypeError(".google.protobuf.SourceCodeInfo.Location.path: array expected");message.path=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.GeneratedCodeInfo;while(reader.pos>>3){case 1:{if(!(message.annotation&&message.annotation.length))message.annotation=[];message.annotation.push($root.google.protobuf.GeneratedCodeInfo.Annotation.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};GeneratedCodeInfo.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GeneratedCodeInfo.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.annotation!=null&&message.hasOwnProperty("annotation")){if(!Array.isArray(message.annotation))return"annotation: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.GeneratedCodeInfo;if(object.annotation){if(!Array.isArray(object.annotation))throw TypeError(".google.protobuf.GeneratedCodeInfo.annotation: array expected");message.annotation=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.GeneratedCodeInfo.Annotation;while(reader.pos>>3){case 1:{if(!(message.path&&message.path.length))message.path=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos$util.recursionLimit)return"maximum nesting depth exceeded";if(message.path!=null&&message.hasOwnProperty("path")){if(!Array.isArray(message.path))return"path: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.GeneratedCodeInfo.Annotation;if(object.path){if(!Array.isArray(object.path))throw TypeError(".google.protobuf.GeneratedCodeInfo.Annotation.path: array expected");message.path=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Timestamp;while(reader.pos>>3){case 1:{message.seconds=reader.int64();break}case 2:{message.nanos=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};Timestamp.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Timestamp.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.seconds!=null&&message.hasOwnProperty("seconds"))if(!$util.isInteger(message.seconds)&&!(message.seconds&&$util.isInteger(message.seconds.low)&&$util.isInteger(message.seconds.high)))return"seconds: integer|Long expected";if(message.nanos!=null&&message.hasOwnProperty("nanos"))if(!$util.isInteger(message.nanos))return"nanos: integer expected";return null};Timestamp.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Timestamp)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Timestamp;if(object.seconds!=null)if($util.Long)(message.seconds=$util.Long.fromValue(object.seconds)).unsigned=false;else if(typeof object.seconds==="string")message.seconds=parseInt(object.seconds,10);else if(typeof object.seconds==="number")message.seconds=object.seconds;else if(typeof object.seconds==="object")message.seconds=new $util.LongBits(object.seconds.low>>>0,object.seconds.high>>>0).toNumber();if(object.nanos!=null)message.nanos=object.nanos|0;return message};Timestamp.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){if($util.Long){var long=new $util.Long(0,0,false);object.seconds=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.seconds=options.longs===String?"0":0;object.nanos=0}if(message.seconds!=null&&message.hasOwnProperty("seconds"))if(typeof message.seconds==="number")object.seconds=options.longs===String?String(message.seconds):message.seconds;else object.seconds=options.longs===String?$util.Long.prototype.toString.call(message.seconds):options.longs===Number?new $util.LongBits(message.seconds.low>>>0,message.seconds.high>>>0).toNumber():message.seconds;if(message.nanos!=null&&message.hasOwnProperty("nanos"))object.nanos=message.nanos;return object};Timestamp.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Timestamp.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Timestamp"};return Timestamp}();protobuf.Duration=function(){function Duration(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Duration;while(reader.pos>>3){case 1:{message.seconds=reader.int64();break}case 2:{message.nanos=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};Duration.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Duration.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.seconds!=null&&message.hasOwnProperty("seconds"))if(!$util.isInteger(message.seconds)&&!(message.seconds&&$util.isInteger(message.seconds.low)&&$util.isInteger(message.seconds.high)))return"seconds: integer|Long expected";if(message.nanos!=null&&message.hasOwnProperty("nanos"))if(!$util.isInteger(message.nanos))return"nanos: integer expected";return null};Duration.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Duration)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Duration;if(object.seconds!=null)if($util.Long)(message.seconds=$util.Long.fromValue(object.seconds)).unsigned=false;else if(typeof object.seconds==="string")message.seconds=parseInt(object.seconds,10);else if(typeof object.seconds==="number")message.seconds=object.seconds;else if(typeof object.seconds==="object")message.seconds=new $util.LongBits(object.seconds.low>>>0,object.seconds.high>>>0).toNumber();if(object.nanos!=null)message.nanos=object.nanos|0;return message};Duration.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){if($util.Long){var long=new $util.Long(0,0,false);object.seconds=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.seconds=options.longs===String?"0":0;object.nanos=0}if(message.seconds!=null&&message.hasOwnProperty("seconds"))if(typeof message.seconds==="number")object.seconds=options.longs===String?String(message.seconds):message.seconds;else object.seconds=options.longs===String?$util.Long.prototype.toString.call(message.seconds):options.longs===Number?new $util.LongBits(message.seconds.low>>>0,message.seconds.high>>>0).toNumber():message.seconds;if(message.nanos!=null&&message.hasOwnProperty("nanos"))object.nanos=message.nanos;return object};Duration.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Duration.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Duration"};return Duration}();protobuf.Any=function(){function Any(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Any;while(reader.pos>>3){case 1:{message.type_url=reader.string();break}case 2:{message.value=reader.bytes();break}default:reader.skipType(tag&7,long);break}}return message};Any.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Any.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.type_url!=null&&message.hasOwnProperty("type_url"))if(!$util.isString(message.type_url))return"type_url: string expected";if(message.value!=null&&message.hasOwnProperty("value"))if(!(message.value&&typeof message.value.length==="number"||$util.isString(message.value)))return"value: buffer expected";return null};Any.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Any)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Any;if(object.type_url!=null)message.type_url=String(object.type_url);if(object.value!=null)if(typeof object.value==="string")$util.base64.decode(object.value,message.value=$util.newBuffer($util.base64.length(object.value)),0);else if(object.value.length>=0)message.value=object.value;return message};Any.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.type_url="";if(options.bytes===String)object.value="";else{object.value=[];if(options.bytes!==Array)object.value=$util.newBuffer(object.value)}}if(message.type_url!=null&&message.hasOwnProperty("type_url"))object.type_url=message.type_url;if(message.value!=null&&message.hasOwnProperty("value"))object.value=options.bytes===String?$util.base64.encode(message.value,0,message.value.length):options.bytes===Array?Array.prototype.slice.call(message.value):message.value;return object};Any.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Any.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Any"};return Any}();protobuf.Empty=function(){function Empty(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Empty;while(reader.pos>>3){default:reader.skipType(tag&7,long);break}}return message};Empty.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Empty.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};Empty.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Empty)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.protobuf.Empty};Empty.toObject=function toObject(){return{}};Empty.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Empty.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Empty"};return Empty}();protobuf.FieldMask=function(){function FieldMask(properties){this.paths=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FieldMask;while(reader.pos>>3){case 1:{if(!(message.paths&&message.paths.length))message.paths=[];message.paths.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};FieldMask.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FieldMask.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.paths!=null&&message.hasOwnProperty("paths")){if(!Array.isArray(message.paths))return"paths: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FieldMask;if(object.paths){if(!Array.isArray(object.paths))throw TypeError(".google.protobuf.FieldMask.paths: array expected");message.paths=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Struct,key,value;while(reader.pos>>3){case 1:{if(message.fields===$util.emptyObject)message.fields={};var end2=reader.uint32()+reader.pos;key="";value=null;while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=$root.google.protobuf.Value.decode(reader,reader.uint32(),undefined,long+1);break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.fields,key);message.fields[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};Struct.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Struct.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.fields!=null&&message.hasOwnProperty("fields")){if(!$util.isObject(message.fields))return"fields: object expected";var key=Object.keys(message.fields);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Struct;if(object.fields){if(typeof object.fields!=="object")throw TypeError(".google.protobuf.Struct.fields: object expected");message.fields={};for(var keys=Object.keys(object.fields),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Value;while(reader.pos>>3){case 1:{message.nullValue=reader.int32();break}case 2:{message.numberValue=reader.double();break}case 3:{message.stringValue=reader.string();break}case 4:{message.boolValue=reader.bool();break}case 5:{message.structValue=$root.google.protobuf.Struct.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.listValue=$root.google.protobuf.ListValue.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Value.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Value.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.nullValue!=null&&message.hasOwnProperty("nullValue")){properties.kind=1;switch(message.nullValue){default:return"nullValue: enum value expected";case 0:break}}if(message.numberValue!=null&&message.hasOwnProperty("numberValue")){if(properties.kind===1)return"kind: multiple values";properties.kind=1;if(typeof message.numberValue!=="number")return"numberValue: number expected"}if(message.stringValue!=null&&message.hasOwnProperty("stringValue")){if(properties.kind===1)return"kind: multiple values";properties.kind=1;if(!$util.isString(message.stringValue))return"stringValue: string expected"}if(message.boolValue!=null&&message.hasOwnProperty("boolValue")){if(properties.kind===1)return"kind: multiple values";properties.kind=1;if(typeof message.boolValue!=="boolean")return"boolValue: boolean expected"}if(message.structValue!=null&&message.hasOwnProperty("structValue")){if(properties.kind===1)return"kind: multiple values";properties.kind=1;{var error=$root.google.protobuf.Struct.verify(message.structValue,long+1);if(error)return"structValue."+error}}if(message.listValue!=null&&message.hasOwnProperty("listValue")){if(properties.kind===1)return"kind: multiple values";properties.kind=1;{var error=$root.google.protobuf.ListValue.verify(message.listValue,long+1);if(error)return"listValue."+error}}return null};Value.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Value)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Value;switch(object.nullValue){default:if(typeof object.nullValue==="number"){message.nullValue=object.nullValue;break}break;case"NULL_VALUE":case 0:message.nullValue=0;break}if(object.numberValue!=null)message.numberValue=Number(object.numberValue);if(object.stringValue!=null)message.stringValue=String(object.stringValue);if(object.boolValue!=null)message.boolValue=Boolean(object.boolValue);if(object.structValue!=null){if(typeof object.structValue!=="object")throw TypeError(".google.protobuf.Value.structValue: object expected");message.structValue=$root.google.protobuf.Struct.fromObject(object.structValue,long+1)}if(object.listValue!=null){if(typeof object.listValue!=="object")throw TypeError(".google.protobuf.Value.listValue: object expected");message.listValue=$root.google.protobuf.ListValue.fromObject(object.listValue,long+1)}return message};Value.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.nullValue!=null&&message.hasOwnProperty("nullValue")){object.nullValue=options.enums===String?$root.google.protobuf.NullValue[message.nullValue]===undefined?message.nullValue:$root.google.protobuf.NullValue[message.nullValue]:message.nullValue;if(options.oneofs)object.kind="nullValue"}if(message.numberValue!=null&&message.hasOwnProperty("numberValue")){object.numberValue=options.json&&!isFinite(message.numberValue)?String(message.numberValue):message.numberValue;if(options.oneofs)object.kind="numberValue"}if(message.stringValue!=null&&message.hasOwnProperty("stringValue")){object.stringValue=message.stringValue;if(options.oneofs)object.kind="stringValue"}if(message.boolValue!=null&&message.hasOwnProperty("boolValue")){object.boolValue=message.boolValue;if(options.oneofs)object.kind="boolValue"}if(message.structValue!=null&&message.hasOwnProperty("structValue")){object.structValue=$root.google.protobuf.Struct.toObject(message.structValue,options);if(options.oneofs)object.kind="structValue"}if(message.listValue!=null&&message.hasOwnProperty("listValue")){object.listValue=$root.google.protobuf.ListValue.toObject(message.listValue,options);if(options.oneofs)object.kind="listValue"}return object};Value.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Value"};return Value}();protobuf.NullValue=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="NULL_VALUE"]=0;return values}();protobuf.ListValue=function(){function ListValue(properties){this.values=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.ListValue;while(reader.pos>>3){case 1:{if(!(message.values&&message.values.length))message.values=[];message.values.push($root.google.protobuf.Value.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};ListValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.values!=null&&message.hasOwnProperty("values")){if(!Array.isArray(message.values))return"values: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.ListValue;if(object.values){if(!Array.isArray(object.values))throw TypeError(".google.protobuf.ListValue.values: array expected");message.values=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.DoubleValue;while(reader.pos>>3){case 1:{message.value=reader.double();break}default:reader.skipType(tag&7,long);break}}return message};DoubleValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DoubleValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(typeof message.value!=="number")return"value: number expected";return null};DoubleValue.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.DoubleValue)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.DoubleValue;if(object.value!=null)message.value=Number(object.value);return message};DoubleValue.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.value=0;if(message.value!=null&&message.hasOwnProperty("value"))object.value=options.json&&!isFinite(message.value)?String(message.value):message.value;return object};DoubleValue.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DoubleValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.DoubleValue"};return DoubleValue}();protobuf.FloatValue=function(){function FloatValue(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FloatValue;while(reader.pos>>3){case 1:{message.value=reader.float();break}default:reader.skipType(tag&7,long);break}}return message};FloatValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FloatValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(typeof message.value!=="number")return"value: number expected";return null};FloatValue.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FloatValue)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FloatValue;if(object.value!=null)message.value=Number(object.value);return message};FloatValue.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.value=0;if(message.value!=null&&message.hasOwnProperty("value"))object.value=options.json&&!isFinite(message.value)?String(message.value):message.value;return object};FloatValue.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FloatValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FloatValue"};return FloatValue}();protobuf.Int64Value=function(){function Int64Value(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Int64Value;while(reader.pos>>3){case 1:{message.value=reader.int64();break}default:reader.skipType(tag&7,long);break}}return message};Int64Value.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Int64Value.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(!$util.isInteger(message.value)&&!(message.value&&$util.isInteger(message.value.low)&&$util.isInteger(message.value.high)))return"value: integer|Long expected";return null};Int64Value.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Int64Value)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Int64Value;if(object.value!=null)if($util.Long)(message.value=$util.Long.fromValue(object.value)).unsigned=false;else if(typeof object.value==="string")message.value=parseInt(object.value,10);else if(typeof object.value==="number")message.value=object.value;else if(typeof object.value==="object")message.value=new $util.LongBits(object.value.low>>>0,object.value.high>>>0).toNumber();return message};Int64Value.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)if($util.Long){var long=new $util.Long(0,0,false);object.value=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.value=options.longs===String?"0":0;if(message.value!=null&&message.hasOwnProperty("value"))if(typeof message.value==="number")object.value=options.longs===String?String(message.value):message.value;else object.value=options.longs===String?$util.Long.prototype.toString.call(message.value):options.longs===Number?new $util.LongBits(message.value.low>>>0,message.value.high>>>0).toNumber():message.value;return object};Int64Value.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Int64Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Int64Value"};return Int64Value}();protobuf.UInt64Value=function(){function UInt64Value(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.UInt64Value;while(reader.pos>>3){case 1:{message.value=reader.uint64();break}default:reader.skipType(tag&7,long);break}}return message};UInt64Value.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UInt64Value.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(!$util.isInteger(message.value)&&!(message.value&&$util.isInteger(message.value.low)&&$util.isInteger(message.value.high)))return"value: integer|Long expected";return null};UInt64Value.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.UInt64Value)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.UInt64Value;if(object.value!=null)if($util.Long)(message.value=$util.Long.fromValue(object.value)).unsigned=true;else if(typeof object.value==="string")message.value=parseInt(object.value,10);else if(typeof object.value==="number")message.value=object.value;else if(typeof object.value==="object")message.value=new $util.LongBits(object.value.low>>>0,object.value.high>>>0).toNumber(true);return message};UInt64Value.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)if($util.Long){var long=new $util.Long(0,0,true);object.value=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.value=options.longs===String?"0":0;if(message.value!=null&&message.hasOwnProperty("value"))if(typeof message.value==="number")object.value=options.longs===String?String(message.value):message.value;else object.value=options.longs===String?$util.Long.prototype.toString.call(message.value):options.longs===Number?new $util.LongBits(message.value.low>>>0,message.value.high>>>0).toNumber(true):message.value;return object};UInt64Value.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UInt64Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.UInt64Value"};return UInt64Value}();protobuf.Int32Value=function(){function Int32Value(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Int32Value;while(reader.pos>>3){case 1:{message.value=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};Int32Value.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Int32Value.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(!$util.isInteger(message.value))return"value: integer expected";return null};Int32Value.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Int32Value)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Int32Value;if(object.value!=null)message.value=object.value|0;return message};Int32Value.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.value=0;if(message.value!=null&&message.hasOwnProperty("value"))object.value=message.value;return object};Int32Value.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Int32Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Int32Value"};return Int32Value}();protobuf.UInt32Value=function(){function UInt32Value(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.UInt32Value;while(reader.pos>>3){case 1:{message.value=reader.uint32();break}default:reader.skipType(tag&7,long);break}}return message};UInt32Value.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UInt32Value.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(!$util.isInteger(message.value))return"value: integer expected";return null};UInt32Value.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.UInt32Value)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.UInt32Value;if(object.value!=null)message.value=object.value>>>0;return message};UInt32Value.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.value=0;if(message.value!=null&&message.hasOwnProperty("value"))object.value=message.value;return object};UInt32Value.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UInt32Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.UInt32Value"};return UInt32Value}();protobuf.BoolValue=function(){function BoolValue(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.BoolValue;while(reader.pos>>3){case 1:{message.value=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};BoolValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BoolValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(typeof message.value!=="boolean")return"value: boolean expected";return null};BoolValue.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.BoolValue)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.BoolValue;if(object.value!=null)message.value=Boolean(object.value);return message};BoolValue.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.value=false;if(message.value!=null&&message.hasOwnProperty("value"))object.value=message.value;return object};BoolValue.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BoolValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.BoolValue"};return BoolValue}();protobuf.StringValue=function(){function StringValue(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.StringValue;while(reader.pos>>3){case 1:{message.value=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};StringValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};StringValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(!$util.isString(message.value))return"value: string expected";return null};StringValue.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.StringValue)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.StringValue;if(object.value!=null)message.value=String(object.value);return message};StringValue.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.value="";if(message.value!=null&&message.hasOwnProperty("value"))object.value=message.value;return object};StringValue.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};StringValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.StringValue"};return StringValue}();protobuf.BytesValue=function(){function BytesValue(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.BytesValue;while(reader.pos>>3){case 1:{message.value=reader.bytes();break}default:reader.skipType(tag&7,long);break}}return message};BytesValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BytesValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(!(message.value&&typeof message.value.length==="number"||$util.isString(message.value)))return"value: buffer expected";return null};BytesValue.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.BytesValue)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.BytesValue;if(object.value!=null)if(typeof object.value==="string")$util.base64.decode(object.value,message.value=$util.newBuffer($util.base64.length(object.value)),0);else if(object.value.length>=0)message.value=object.value;return message};BytesValue.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)if(options.bytes===String)object.value="";else{object.value=[];if(options.bytes!==Array)object.value=$util.newBuffer(object.value)}if(message.value!=null&&message.hasOwnProperty("value"))object.value=options.bytes===String?$util.base64.encode(message.value,0,message.value.length):options.bytes===Array?Array.prototype.slice.call(message.value):message.value;return object};BytesValue.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BytesValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.BytesValue"};return BytesValue}();return protobuf}();google.type=function(){var type={};type.DayOfWeek=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="DAY_OF_WEEK_UNSPECIFIED"]=0;values[valuesById[1]="MONDAY"]=1;values[valuesById[2]="TUESDAY"]=2;values[valuesById[3]="WEDNESDAY"]=3;values[valuesById[4]="THURSDAY"]=4;values[valuesById[5]="FRIDAY"]=5;values[valuesById[6]="SATURDAY"]=6;values[valuesById[7]="SUNDAY"]=7;return values}();type.LatLng=function(){function LatLng(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.type.LatLng;while(reader.pos>>3){case 1:{message.latitude=reader.double();break}case 2:{message.longitude=reader.double();break}default:reader.skipType(tag&7,long);break}}return message};LatLng.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};LatLng.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.latitude!=null&&message.hasOwnProperty("latitude"))if(typeof message.latitude!=="number")return"latitude: number expected";if(message.longitude!=null&&message.hasOwnProperty("longitude"))if(typeof message.longitude!=="number")return"longitude: number expected";return null};LatLng.fromObject=function fromObject(object,long){if(object instanceof $root.google.type.LatLng)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.type.LatLng;if(object.latitude!=null)message.latitude=Number(object.latitude);if(object.longitude!=null)message.longitude=Number(object.longitude);return message};LatLng.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.latitude=0;object.longitude=0}if(message.latitude!=null&&message.hasOwnProperty("latitude"))object.latitude=options.json&&!isFinite(message.latitude)?String(message.latitude):message.latitude;if(message.longitude!=null&&message.hasOwnProperty("longitude"))object.longitude=options.json&&!isFinite(message.longitude)?String(message.longitude):message.longitude;return object};LatLng.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};LatLng.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.type.LatLng"};return LatLng}();return type}();google.longrunning=function(){var longrunning={};longrunning.Operations=function(){function Operations(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited)}(Operations.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=Operations;Operations.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited)};Object.defineProperty(Operations.prototype.listOperations=function listOperations(request,callback){return this.rpcCall(listOperations,$root.google.longrunning.ListOperationsRequest,$root.google.longrunning.ListOperationsResponse,request,callback)},"name",{value:"ListOperations"});Object.defineProperty(Operations.prototype.getOperation=function getOperation(request,callback){return this.rpcCall(getOperation,$root.google.longrunning.GetOperationRequest,$root.google.longrunning.Operation,request,callback)},"name",{value:"GetOperation"});Object.defineProperty(Operations.prototype.deleteOperation=function deleteOperation(request,callback){return this.rpcCall(deleteOperation,$root.google.longrunning.DeleteOperationRequest,$root.google.protobuf.Empty,request,callback)},"name",{value:"DeleteOperation"});Object.defineProperty(Operations.prototype.cancelOperation=function cancelOperation(request,callback){return this.rpcCall(cancelOperation,$root.google.longrunning.CancelOperationRequest,$root.google.protobuf.Empty,request,callback)},"name",{value:"CancelOperation"});Object.defineProperty(Operations.prototype.waitOperation=function waitOperation(request,callback){return this.rpcCall(waitOperation,$root.google.longrunning.WaitOperationRequest,$root.google.longrunning.Operation,request,callback)},"name",{value:"WaitOperation"});return Operations}();longrunning.Operation=function(){function Operation(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.longrunning.Operation;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{message.metadata=$root.google.protobuf.Any.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.done=reader.bool();break}case 4:{message.error=$root.google.rpc.Status.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.response=$root.google.protobuf.Any.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Operation.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Operation.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.metadata!=null&&message.hasOwnProperty("metadata")){var error=$root.google.protobuf.Any.verify(message.metadata,long+1);if(error)return"metadata."+error}if(message.done!=null&&message.hasOwnProperty("done"))if(typeof message.done!=="boolean")return"done: boolean expected";if(message.error!=null&&message.hasOwnProperty("error")){properties.result=1;{var error=$root.google.rpc.Status.verify(message.error,long+1);if(error)return"error."+error}}if(message.response!=null&&message.hasOwnProperty("response")){if(properties.result===1)return"result: multiple values";properties.result=1;{var error=$root.google.protobuf.Any.verify(message.response,long+1);if(error)return"response."+error}}return null};Operation.fromObject=function fromObject(object,long){if(object instanceof $root.google.longrunning.Operation)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.longrunning.Operation;if(object.name!=null)message.name=String(object.name);if(object.metadata!=null){if(typeof object.metadata!=="object")throw TypeError(".google.longrunning.Operation.metadata: object expected");message.metadata=$root.google.protobuf.Any.fromObject(object.metadata,long+1)}if(object.done!=null)message.done=Boolean(object.done);if(object.error!=null){if(typeof object.error!=="object")throw TypeError(".google.longrunning.Operation.error: object expected");message.error=$root.google.rpc.Status.fromObject(object.error,long+1)}if(object.response!=null){if(typeof object.response!=="object")throw TypeError(".google.longrunning.Operation.response: object expected");message.response=$root.google.protobuf.Any.fromObject(object.response,long+1)}return message};Operation.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.metadata=null;object.done=false}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.metadata!=null&&message.hasOwnProperty("metadata"))object.metadata=$root.google.protobuf.Any.toObject(message.metadata,options);if(message.done!=null&&message.hasOwnProperty("done"))object.done=message.done;if(message.error!=null&&message.hasOwnProperty("error")){object.error=$root.google.rpc.Status.toObject(message.error,options);if(options.oneofs)object.result="error"}if(message.response!=null&&message.hasOwnProperty("response")){object.response=$root.google.protobuf.Any.toObject(message.response,options);if(options.oneofs)object.result="response"}return object};Operation.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Operation.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.longrunning.Operation"};return Operation}();longrunning.GetOperationRequest=function(){function GetOperationRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.longrunning.GetOperationRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};GetOperationRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GetOperationRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};GetOperationRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.longrunning.GetOperationRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.longrunning.GetOperationRequest;if(object.name!=null)message.name=String(object.name);return message};GetOperationRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};GetOperationRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GetOperationRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.longrunning.GetOperationRequest"};return GetOperationRequest}();longrunning.ListOperationsRequest=function(){function ListOperationsRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.longrunning.ListOperationsRequest;while(reader.pos>>3){case 4:{message.name=reader.string();break}case 1:{message.filter=reader.string();break}case 2:{message.pageSize=reader.int32();break}case 3:{message.pageToken=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ListOperationsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListOperationsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.filter!=null&&message.hasOwnProperty("filter"))if(!$util.isString(message.filter))return"filter: string expected";if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))if(!$util.isInteger(message.pageSize))return"pageSize: integer expected";if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))if(!$util.isString(message.pageToken))return"pageToken: string expected";return null};ListOperationsRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.longrunning.ListOperationsRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.longrunning.ListOperationsRequest;if(object.name!=null)message.name=String(object.name);if(object.filter!=null)message.filter=String(object.filter);if(object.pageSize!=null)message.pageSize=object.pageSize|0;if(object.pageToken!=null)message.pageToken=String(object.pageToken);return message};ListOperationsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.filter="";object.pageSize=0;object.pageToken="";object.name=""}if(message.filter!=null&&message.hasOwnProperty("filter"))object.filter=message.filter;if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))object.pageSize=message.pageSize;if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))object.pageToken=message.pageToken;if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};ListOperationsRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ListOperationsRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.longrunning.ListOperationsRequest"};return ListOperationsRequest}();longrunning.ListOperationsResponse=function(){function ListOperationsResponse(properties){this.operations=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.longrunning.ListOperationsResponse;while(reader.pos>>3){case 1:{if(!(message.operations&&message.operations.length))message.operations=[];message.operations.push($root.google.longrunning.Operation.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.nextPageToken=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ListOperationsResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListOperationsResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.operations!=null&&message.hasOwnProperty("operations")){if(!Array.isArray(message.operations))return"operations: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.longrunning.ListOperationsResponse;if(object.operations){if(!Array.isArray(object.operations))throw TypeError(".google.longrunning.ListOperationsResponse.operations: array expected");message.operations=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.longrunning.CancelOperationRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};CancelOperationRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CancelOperationRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};CancelOperationRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.longrunning.CancelOperationRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.longrunning.CancelOperationRequest;if(object.name!=null)message.name=String(object.name);return message};CancelOperationRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};CancelOperationRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CancelOperationRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.longrunning.CancelOperationRequest"};return CancelOperationRequest}();longrunning.DeleteOperationRequest=function(){function DeleteOperationRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.longrunning.DeleteOperationRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};DeleteOperationRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DeleteOperationRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};DeleteOperationRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.longrunning.DeleteOperationRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.longrunning.DeleteOperationRequest;if(object.name!=null)message.name=String(object.name);return message};DeleteOperationRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};DeleteOperationRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DeleteOperationRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.longrunning.DeleteOperationRequest"};return DeleteOperationRequest}();longrunning.WaitOperationRequest=function(){function WaitOperationRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.longrunning.WaitOperationRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{message.timeout=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};WaitOperationRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};WaitOperationRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.timeout!=null&&message.hasOwnProperty("timeout")){var error=$root.google.protobuf.Duration.verify(message.timeout,long+1);if(error)return"timeout."+error}return null};WaitOperationRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.longrunning.WaitOperationRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.longrunning.WaitOperationRequest;if(object.name!=null)message.name=String(object.name);if(object.timeout!=null){if(typeof object.timeout!=="object")throw TypeError(".google.longrunning.WaitOperationRequest.timeout: object expected");message.timeout=$root.google.protobuf.Duration.fromObject(object.timeout,long+1)}return message};WaitOperationRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.timeout=null}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.timeout!=null&&message.hasOwnProperty("timeout"))object.timeout=$root.google.protobuf.Duration.toObject(message.timeout,options);return object};WaitOperationRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};WaitOperationRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.longrunning.WaitOperationRequest"};return WaitOperationRequest}();longrunning.OperationInfo=function(){function OperationInfo(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.longrunning.OperationInfo;while(reader.pos>>3){case 1:{message.responseType=reader.string();break}case 2:{message.metadataType=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};OperationInfo.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};OperationInfo.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.responseType!=null&&message.hasOwnProperty("responseType"))if(!$util.isString(message.responseType))return"responseType: string expected";if(message.metadataType!=null&&message.hasOwnProperty("metadataType"))if(!$util.isString(message.metadataType))return"metadataType: string expected";return null};OperationInfo.fromObject=function fromObject(object,long){if(object instanceof $root.google.longrunning.OperationInfo)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.longrunning.OperationInfo;if(object.responseType!=null)message.responseType=String(object.responseType);if(object.metadataType!=null)message.metadataType=String(object.metadataType);return message};OperationInfo.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.responseType="";object.metadataType=""}if(message.responseType!=null&&message.hasOwnProperty("responseType"))object.responseType=message.responseType;if(message.metadataType!=null&&message.hasOwnProperty("metadataType"))object.metadataType=message.metadataType;return object};OperationInfo.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};OperationInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.longrunning.OperationInfo"};return OperationInfo}();return longrunning}();google.rpc=function(){var rpc={};rpc.Status=function(){function Status(properties){this.details=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.rpc.Status;while(reader.pos>>3){case 1:{message.code=reader.int32();break}case 2:{message.message=reader.string();break}case 3:{if(!(message.details&&message.details.length))message.details=[];message.details.push($root.google.protobuf.Any.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};Status.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Status.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.code!=null&&message.hasOwnProperty("code"))if(!$util.isInteger(message.code))return"code: integer expected";if(message.message!=null&&message.hasOwnProperty("message"))if(!$util.isString(message.message))return"message: string expected";if(message.details!=null&&message.hasOwnProperty("details")){if(!Array.isArray(message.details))return"details: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.rpc.Status;if(object.code!=null)message.code=object.code|0;if(object.message!=null)message.message=String(object.message);if(object.details){if(!Array.isArray(object.details))throw TypeError(".google.rpc.Status.details: array expected");message.details=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Backup;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{message.database=reader.string();break}case 7:{message.databaseUid=reader.string();break}case 3:{message.snapshotTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.expireTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.stats=$root.google.firestore.admin.v1.Backup.Stats.decode(reader,reader.uint32(),undefined,long+1);break}case 8:{message.state=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};Backup.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Backup.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.databaseUid!=null&&message.hasOwnProperty("databaseUid"))if(!$util.isString(message.databaseUid))return"databaseUid: string expected";if(message.snapshotTime!=null&&message.hasOwnProperty("snapshotTime")){var error=$root.google.protobuf.Timestamp.verify(message.snapshotTime,long+1);if(error)return"snapshotTime."+error}if(message.expireTime!=null&&message.hasOwnProperty("expireTime")){var error=$root.google.protobuf.Timestamp.verify(message.expireTime,long+1);if(error)return"expireTime."+error}if(message.stats!=null&&message.hasOwnProperty("stats")){var error=$root.google.firestore.admin.v1.Backup.Stats.verify(message.stats,long+1);if(error)return"stats."+error}if(message.state!=null&&message.hasOwnProperty("state"))switch(message.state){default:return"state: enum value expected";case 0:case 1:case 2:case 3:break}return null};Backup.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Backup)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Backup;if(object.name!=null)message.name=String(object.name);if(object.database!=null)message.database=String(object.database);if(object.databaseUid!=null)message.databaseUid=String(object.databaseUid);if(object.snapshotTime!=null){if(typeof object.snapshotTime!=="object")throw TypeError(".google.firestore.admin.v1.Backup.snapshotTime: object expected");message.snapshotTime=$root.google.protobuf.Timestamp.fromObject(object.snapshotTime,long+1)}if(object.expireTime!=null){if(typeof object.expireTime!=="object")throw TypeError(".google.firestore.admin.v1.Backup.expireTime: object expected");message.expireTime=$root.google.protobuf.Timestamp.fromObject(object.expireTime,long+1)}if(object.stats!=null){if(typeof object.stats!=="object")throw TypeError(".google.firestore.admin.v1.Backup.stats: object expected");message.stats=$root.google.firestore.admin.v1.Backup.Stats.fromObject(object.stats,long+1)}switch(object.state){default:if(typeof object.state==="number"){message.state=object.state;break}break;case"STATE_UNSPECIFIED":case 0:message.state=0;break;case"CREATING":case 1:message.state=1;break;case"READY":case 2:message.state=2;break;case"NOT_AVAILABLE":case 3:message.state=3;break}return message};Backup.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.database="";object.snapshotTime=null;object.expireTime=null;object.stats=null;object.databaseUid="";object.state=options.enums===String?"STATE_UNSPECIFIED":0}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.database!=null&&message.hasOwnProperty("database"))object.database=message.database;if(message.snapshotTime!=null&&message.hasOwnProperty("snapshotTime"))object.snapshotTime=$root.google.protobuf.Timestamp.toObject(message.snapshotTime,options);if(message.expireTime!=null&&message.hasOwnProperty("expireTime"))object.expireTime=$root.google.protobuf.Timestamp.toObject(message.expireTime,options);if(message.stats!=null&&message.hasOwnProperty("stats"))object.stats=$root.google.firestore.admin.v1.Backup.Stats.toObject(message.stats,options);if(message.databaseUid!=null&&message.hasOwnProperty("databaseUid"))object.databaseUid=message.databaseUid;if(message.state!=null&&message.hasOwnProperty("state"))object.state=options.enums===String?$root.google.firestore.admin.v1.Backup.State[message.state]===undefined?message.state:$root.google.firestore.admin.v1.Backup.State[message.state]:message.state;return object};Backup.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Backup.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Backup"};Backup.Stats=function(){function Stats(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Backup.Stats;while(reader.pos>>3){case 1:{message.sizeBytes=reader.int64();break}case 2:{message.documentCount=reader.int64();break}case 3:{message.indexCount=reader.int64();break}default:reader.skipType(tag&7,long);break}}return message};Stats.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Stats.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.sizeBytes!=null&&message.hasOwnProperty("sizeBytes"))if(!$util.isInteger(message.sizeBytes)&&!(message.sizeBytes&&$util.isInteger(message.sizeBytes.low)&&$util.isInteger(message.sizeBytes.high)))return"sizeBytes: integer|Long expected";if(message.documentCount!=null&&message.hasOwnProperty("documentCount"))if(!$util.isInteger(message.documentCount)&&!(message.documentCount&&$util.isInteger(message.documentCount.low)&&$util.isInteger(message.documentCount.high)))return"documentCount: integer|Long expected";if(message.indexCount!=null&&message.hasOwnProperty("indexCount"))if(!$util.isInteger(message.indexCount)&&!(message.indexCount&&$util.isInteger(message.indexCount.low)&&$util.isInteger(message.indexCount.high)))return"indexCount: integer|Long expected";return null};Stats.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Backup.Stats)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Backup.Stats;if(object.sizeBytes!=null)if($util.Long)(message.sizeBytes=$util.Long.fromValue(object.sizeBytes)).unsigned=false;else if(typeof object.sizeBytes==="string")message.sizeBytes=parseInt(object.sizeBytes,10);else if(typeof object.sizeBytes==="number")message.sizeBytes=object.sizeBytes;else if(typeof object.sizeBytes==="object")message.sizeBytes=new $util.LongBits(object.sizeBytes.low>>>0,object.sizeBytes.high>>>0).toNumber();if(object.documentCount!=null)if($util.Long)(message.documentCount=$util.Long.fromValue(object.documentCount)).unsigned=false;else if(typeof object.documentCount==="string")message.documentCount=parseInt(object.documentCount,10);else if(typeof object.documentCount==="number")message.documentCount=object.documentCount;else if(typeof object.documentCount==="object")message.documentCount=new $util.LongBits(object.documentCount.low>>>0,object.documentCount.high>>>0).toNumber();if(object.indexCount!=null)if($util.Long)(message.indexCount=$util.Long.fromValue(object.indexCount)).unsigned=false;else if(typeof object.indexCount==="string")message.indexCount=parseInt(object.indexCount,10);else if(typeof object.indexCount==="number")message.indexCount=object.indexCount;else if(typeof object.indexCount==="object")message.indexCount=new $util.LongBits(object.indexCount.low>>>0,object.indexCount.high>>>0).toNumber();return message};Stats.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){if($util.Long){var long=new $util.Long(0,0,false);object.sizeBytes=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.sizeBytes=options.longs===String?"0":0;if($util.Long){var long=new $util.Long(0,0,false);object.documentCount=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.documentCount=options.longs===String?"0":0;if($util.Long){var long=new $util.Long(0,0,false);object.indexCount=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.indexCount=options.longs===String?"0":0}if(message.sizeBytes!=null&&message.hasOwnProperty("sizeBytes"))if(typeof message.sizeBytes==="number")object.sizeBytes=options.longs===String?String(message.sizeBytes):message.sizeBytes;else object.sizeBytes=options.longs===String?$util.Long.prototype.toString.call(message.sizeBytes):options.longs===Number?new $util.LongBits(message.sizeBytes.low>>>0,message.sizeBytes.high>>>0).toNumber():message.sizeBytes;if(message.documentCount!=null&&message.hasOwnProperty("documentCount"))if(typeof message.documentCount==="number")object.documentCount=options.longs===String?String(message.documentCount):message.documentCount;else object.documentCount=options.longs===String?$util.Long.prototype.toString.call(message.documentCount):options.longs===Number?new $util.LongBits(message.documentCount.low>>>0,message.documentCount.high>>>0).toNumber():message.documentCount;if(message.indexCount!=null&&message.hasOwnProperty("indexCount"))if(typeof message.indexCount==="number")object.indexCount=options.longs===String?String(message.indexCount):message.indexCount;else object.indexCount=options.longs===String?$util.Long.prototype.toString.call(message.indexCount):options.longs===Number?new $util.LongBits(message.indexCount.low>>>0,message.indexCount.high>>>0).toNumber():message.indexCount;return object};Stats.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Stats.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Backup.Stats"};return Stats}();Backup.State=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="STATE_UNSPECIFIED"]=0;values[valuesById[1]="CREATING"]=1;values[valuesById[2]="READY"]=2;values[valuesById[3]="NOT_AVAILABLE"]=3;return values}();return Backup}();v1.Database=function(){function Database(properties){this.tags={};if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Database,key,value;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 3:{message.uid=reader.string();break}case 5:{message.createTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.updateTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.deleteTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 9:{message.locationId=reader.string();break}case 10:{message.type=reader.int32();break}case 15:{message.concurrencyMode=reader.int32();break}case 17:{message.versionRetentionPeriod=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 18:{message.earliestVersionTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 21:{message.pointInTimeRecoveryEnablement=reader.int32();break}case 19:{message.appEngineIntegrationMode=reader.int32();break}case 20:{message.keyPrefix=reader.string();break}case 22:{message.deleteProtectionState=reader.int32();break}case 23:{message.cmekConfig=$root.google.firestore.admin.v1.Database.CmekConfig.decode(reader,reader.uint32(),undefined,long+1);break}case 25:{message.previousId=reader.string();break}case 26:{message.sourceInfo=$root.google.firestore.admin.v1.Database.SourceInfo.decode(reader,reader.uint32(),undefined,long+1);break}case 29:{if(message.tags===$util.emptyObject)message.tags={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.tags,key);message.tags[key]=value;break}case 30:{message.freeTier=reader.bool();break}case 99:{message.etag=reader.string();break}case 28:{message.databaseEdition=reader.int32();break}case 31:{message.realtimeUpdatesMode=reader.int32();break}case 33:{message.firestoreDataAccessMode=reader.int32();break}case 34:{message.mongodbCompatibleDataAccessMode=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};Database.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Database.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.uid!=null&&message.hasOwnProperty("uid"))if(!$util.isString(message.uid))return"uid: string expected";if(message.createTime!=null&&message.hasOwnProperty("createTime")){var error=$root.google.protobuf.Timestamp.verify(message.createTime,long+1);if(error)return"createTime."+error}if(message.updateTime!=null&&message.hasOwnProperty("updateTime")){var error=$root.google.protobuf.Timestamp.verify(message.updateTime,long+1);if(error)return"updateTime."+error}if(message.deleteTime!=null&&message.hasOwnProperty("deleteTime")){var error=$root.google.protobuf.Timestamp.verify(message.deleteTime,long+1);if(error)return"deleteTime."+error}if(message.locationId!=null&&message.hasOwnProperty("locationId"))if(!$util.isString(message.locationId))return"locationId: string expected";if(message.type!=null&&message.hasOwnProperty("type"))switch(message.type){default:return"type: enum value expected";case 0:case 1:case 2:break}if(message.concurrencyMode!=null&&message.hasOwnProperty("concurrencyMode"))switch(message.concurrencyMode){default:return"concurrencyMode: enum value expected";case 0:case 1:case 2:case 3:break}if(message.versionRetentionPeriod!=null&&message.hasOwnProperty("versionRetentionPeriod")){var error=$root.google.protobuf.Duration.verify(message.versionRetentionPeriod,long+1);if(error)return"versionRetentionPeriod."+error}if(message.earliestVersionTime!=null&&message.hasOwnProperty("earliestVersionTime")){var error=$root.google.protobuf.Timestamp.verify(message.earliestVersionTime,long+1);if(error)return"earliestVersionTime."+error}if(message.pointInTimeRecoveryEnablement!=null&&message.hasOwnProperty("pointInTimeRecoveryEnablement"))switch(message.pointInTimeRecoveryEnablement){default:return"pointInTimeRecoveryEnablement: enum value expected";case 0:case 1:case 2:break}if(message.appEngineIntegrationMode!=null&&message.hasOwnProperty("appEngineIntegrationMode"))switch(message.appEngineIntegrationMode){default:return"appEngineIntegrationMode: enum value expected";case 0:case 1:case 2:break}if(message.keyPrefix!=null&&message.hasOwnProperty("keyPrefix"))if(!$util.isString(message.keyPrefix))return"keyPrefix: string expected";if(message.deleteProtectionState!=null&&message.hasOwnProperty("deleteProtectionState"))switch(message.deleteProtectionState){default:return"deleteProtectionState: enum value expected";case 0:case 1:case 2:break}if(message.cmekConfig!=null&&message.hasOwnProperty("cmekConfig")){var error=$root.google.firestore.admin.v1.Database.CmekConfig.verify(message.cmekConfig,long+1);if(error)return"cmekConfig."+error}if(message.previousId!=null&&message.hasOwnProperty("previousId"))if(!$util.isString(message.previousId))return"previousId: string expected";if(message.sourceInfo!=null&&message.hasOwnProperty("sourceInfo")){var error=$root.google.firestore.admin.v1.Database.SourceInfo.verify(message.sourceInfo,long+1);if(error)return"sourceInfo."+error}if(message.tags!=null&&message.hasOwnProperty("tags")){if(!$util.isObject(message.tags))return"tags: object expected";var key=Object.keys(message.tags);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Database;if(object.name!=null)message.name=String(object.name);if(object.uid!=null)message.uid=String(object.uid);if(object.createTime!=null){if(typeof object.createTime!=="object")throw TypeError(".google.firestore.admin.v1.Database.createTime: object expected");message.createTime=$root.google.protobuf.Timestamp.fromObject(object.createTime,long+1)}if(object.updateTime!=null){if(typeof object.updateTime!=="object")throw TypeError(".google.firestore.admin.v1.Database.updateTime: object expected");message.updateTime=$root.google.protobuf.Timestamp.fromObject(object.updateTime,long+1)}if(object.deleteTime!=null){if(typeof object.deleteTime!=="object")throw TypeError(".google.firestore.admin.v1.Database.deleteTime: object expected");message.deleteTime=$root.google.protobuf.Timestamp.fromObject(object.deleteTime,long+1)}if(object.locationId!=null)message.locationId=String(object.locationId);switch(object.type){default:if(typeof object.type==="number"){message.type=object.type;break}break;case"DATABASE_TYPE_UNSPECIFIED":case 0:message.type=0;break;case"FIRESTORE_NATIVE":case 1:message.type=1;break;case"DATASTORE_MODE":case 2:message.type=2;break}switch(object.concurrencyMode){default:if(typeof object.concurrencyMode==="number"){message.concurrencyMode=object.concurrencyMode;break}break;case"CONCURRENCY_MODE_UNSPECIFIED":case 0:message.concurrencyMode=0;break;case"OPTIMISTIC":case 1:message.concurrencyMode=1;break;case"PESSIMISTIC":case 2:message.concurrencyMode=2;break;case"OPTIMISTIC_WITH_ENTITY_GROUPS":case 3:message.concurrencyMode=3;break}if(object.versionRetentionPeriod!=null){if(typeof object.versionRetentionPeriod!=="object")throw TypeError(".google.firestore.admin.v1.Database.versionRetentionPeriod: object expected");message.versionRetentionPeriod=$root.google.protobuf.Duration.fromObject(object.versionRetentionPeriod,long+1)}if(object.earliestVersionTime!=null){if(typeof object.earliestVersionTime!=="object")throw TypeError(".google.firestore.admin.v1.Database.earliestVersionTime: object expected");message.earliestVersionTime=$root.google.protobuf.Timestamp.fromObject(object.earliestVersionTime,long+1)}switch(object.pointInTimeRecoveryEnablement){default:if(typeof object.pointInTimeRecoveryEnablement==="number"){message.pointInTimeRecoveryEnablement=object.pointInTimeRecoveryEnablement;break}break;case"POINT_IN_TIME_RECOVERY_ENABLEMENT_UNSPECIFIED":case 0:message.pointInTimeRecoveryEnablement=0;break;case"POINT_IN_TIME_RECOVERY_ENABLED":case 1:message.pointInTimeRecoveryEnablement=1;break;case"POINT_IN_TIME_RECOVERY_DISABLED":case 2:message.pointInTimeRecoveryEnablement=2;break}switch(object.appEngineIntegrationMode){default:if(typeof object.appEngineIntegrationMode==="number"){message.appEngineIntegrationMode=object.appEngineIntegrationMode;break}break;case"APP_ENGINE_INTEGRATION_MODE_UNSPECIFIED":case 0:message.appEngineIntegrationMode=0;break;case"ENABLED":case 1:message.appEngineIntegrationMode=1;break;case"DISABLED":case 2:message.appEngineIntegrationMode=2;break}if(object.keyPrefix!=null)message.keyPrefix=String(object.keyPrefix);switch(object.deleteProtectionState){default:if(typeof object.deleteProtectionState==="number"){message.deleteProtectionState=object.deleteProtectionState;break}break;case"DELETE_PROTECTION_STATE_UNSPECIFIED":case 0:message.deleteProtectionState=0;break;case"DELETE_PROTECTION_DISABLED":case 1:message.deleteProtectionState=1;break;case"DELETE_PROTECTION_ENABLED":case 2:message.deleteProtectionState=2;break}if(object.cmekConfig!=null){if(typeof object.cmekConfig!=="object")throw TypeError(".google.firestore.admin.v1.Database.cmekConfig: object expected");message.cmekConfig=$root.google.firestore.admin.v1.Database.CmekConfig.fromObject(object.cmekConfig,long+1)}if(object.previousId!=null)message.previousId=String(object.previousId);if(object.sourceInfo!=null){if(typeof object.sourceInfo!=="object")throw TypeError(".google.firestore.admin.v1.Database.sourceInfo: object expected");message.sourceInfo=$root.google.firestore.admin.v1.Database.SourceInfo.fromObject(object.sourceInfo,long+1)}if(object.tags){if(typeof object.tags!=="object")throw TypeError(".google.firestore.admin.v1.Database.tags: object expected");message.tags={};for(var keys=Object.keys(object.tags),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Database.CmekConfig;while(reader.pos>>3){case 1:{message.kmsKeyName=reader.string();break}case 2:{if(!(message.activeKeyVersion&&message.activeKeyVersion.length))message.activeKeyVersion=[];message.activeKeyVersion.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};CmekConfig.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CmekConfig.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.kmsKeyName!=null&&message.hasOwnProperty("kmsKeyName"))if(!$util.isString(message.kmsKeyName))return"kmsKeyName: string expected";if(message.activeKeyVersion!=null&&message.hasOwnProperty("activeKeyVersion")){if(!Array.isArray(message.activeKeyVersion))return"activeKeyVersion: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Database.CmekConfig;if(object.kmsKeyName!=null)message.kmsKeyName=String(object.kmsKeyName);if(object.activeKeyVersion){if(!Array.isArray(object.activeKeyVersion))throw TypeError(".google.firestore.admin.v1.Database.CmekConfig.activeKeyVersion: array expected");message.activeKeyVersion=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Database.SourceInfo;while(reader.pos>>3){case 1:{message.backup=$root.google.firestore.admin.v1.Database.SourceInfo.BackupSource.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.operation=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};SourceInfo.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};SourceInfo.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.backup!=null&&message.hasOwnProperty("backup")){properties.source=1;{var error=$root.google.firestore.admin.v1.Database.SourceInfo.BackupSource.verify(message.backup,long+1);if(error)return"backup."+error}}if(message.operation!=null&&message.hasOwnProperty("operation"))if(!$util.isString(message.operation))return"operation: string expected";return null};SourceInfo.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Database.SourceInfo)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Database.SourceInfo;if(object.backup!=null){if(typeof object.backup!=="object")throw TypeError(".google.firestore.admin.v1.Database.SourceInfo.backup: object expected");message.backup=$root.google.firestore.admin.v1.Database.SourceInfo.BackupSource.fromObject(object.backup,long+1)}if(object.operation!=null)message.operation=String(object.operation);return message};SourceInfo.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.operation="";if(message.backup!=null&&message.hasOwnProperty("backup")){object.backup=$root.google.firestore.admin.v1.Database.SourceInfo.BackupSource.toObject(message.backup,options);if(options.oneofs)object.source="backup"}if(message.operation!=null&&message.hasOwnProperty("operation"))object.operation=message.operation;return object};SourceInfo.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};SourceInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Database.SourceInfo"};SourceInfo.BackupSource=function(){function BackupSource(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Database.SourceInfo.BackupSource;while(reader.pos>>3){case 1:{message.backup=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};BackupSource.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BackupSource.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.backup!=null&&message.hasOwnProperty("backup"))if(!$util.isString(message.backup))return"backup: string expected";return null};BackupSource.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Database.SourceInfo.BackupSource)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Database.SourceInfo.BackupSource;if(object.backup!=null)message.backup=String(object.backup);return message};BackupSource.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.backup="";if(message.backup!=null&&message.hasOwnProperty("backup"))object.backup=message.backup;return object};BackupSource.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BackupSource.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Database.SourceInfo.BackupSource"};return BackupSource}();return SourceInfo}();Database.EncryptionConfig=function(){function EncryptionConfig(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Database.EncryptionConfig;while(reader.pos>>3){case 1:{message.googleDefaultEncryption=$root.google.firestore.admin.v1.Database.EncryptionConfig.GoogleDefaultEncryptionOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.useSourceEncryption=$root.google.firestore.admin.v1.Database.EncryptionConfig.SourceEncryptionOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.customerManagedEncryption=$root.google.firestore.admin.v1.Database.EncryptionConfig.CustomerManagedEncryptionOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};EncryptionConfig.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EncryptionConfig.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.googleDefaultEncryption!=null&&message.hasOwnProperty("googleDefaultEncryption")){properties.encryptionType=1;{var error=$root.google.firestore.admin.v1.Database.EncryptionConfig.GoogleDefaultEncryptionOptions.verify(message.googleDefaultEncryption,long+1);if(error)return"googleDefaultEncryption."+error}}if(message.useSourceEncryption!=null&&message.hasOwnProperty("useSourceEncryption")){if(properties.encryptionType===1)return"encryptionType: multiple values";properties.encryptionType=1;{var error=$root.google.firestore.admin.v1.Database.EncryptionConfig.SourceEncryptionOptions.verify(message.useSourceEncryption,long+1);if(error)return"useSourceEncryption."+error}}if(message.customerManagedEncryption!=null&&message.hasOwnProperty("customerManagedEncryption")){if(properties.encryptionType===1)return"encryptionType: multiple values";properties.encryptionType=1;{var error=$root.google.firestore.admin.v1.Database.EncryptionConfig.CustomerManagedEncryptionOptions.verify(message.customerManagedEncryption,long+1);if(error)return"customerManagedEncryption."+error}}return null};EncryptionConfig.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Database.EncryptionConfig)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Database.EncryptionConfig;if(object.googleDefaultEncryption!=null){if(typeof object.googleDefaultEncryption!=="object")throw TypeError(".google.firestore.admin.v1.Database.EncryptionConfig.googleDefaultEncryption: object expected");message.googleDefaultEncryption=$root.google.firestore.admin.v1.Database.EncryptionConfig.GoogleDefaultEncryptionOptions.fromObject(object.googleDefaultEncryption,long+1)}if(object.useSourceEncryption!=null){if(typeof object.useSourceEncryption!=="object")throw TypeError(".google.firestore.admin.v1.Database.EncryptionConfig.useSourceEncryption: object expected");message.useSourceEncryption=$root.google.firestore.admin.v1.Database.EncryptionConfig.SourceEncryptionOptions.fromObject(object.useSourceEncryption,long+1)}if(object.customerManagedEncryption!=null){if(typeof object.customerManagedEncryption!=="object")throw TypeError(".google.firestore.admin.v1.Database.EncryptionConfig.customerManagedEncryption: object expected");message.customerManagedEncryption=$root.google.firestore.admin.v1.Database.EncryptionConfig.CustomerManagedEncryptionOptions.fromObject(object.customerManagedEncryption,long+1)}return message};EncryptionConfig.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.googleDefaultEncryption!=null&&message.hasOwnProperty("googleDefaultEncryption")){object.googleDefaultEncryption=$root.google.firestore.admin.v1.Database.EncryptionConfig.GoogleDefaultEncryptionOptions.toObject(message.googleDefaultEncryption,options);if(options.oneofs)object.encryptionType="googleDefaultEncryption"}if(message.useSourceEncryption!=null&&message.hasOwnProperty("useSourceEncryption")){object.useSourceEncryption=$root.google.firestore.admin.v1.Database.EncryptionConfig.SourceEncryptionOptions.toObject(message.useSourceEncryption,options);if(options.oneofs)object.encryptionType="useSourceEncryption"}if(message.customerManagedEncryption!=null&&message.hasOwnProperty("customerManagedEncryption")){object.customerManagedEncryption=$root.google.firestore.admin.v1.Database.EncryptionConfig.CustomerManagedEncryptionOptions.toObject(message.customerManagedEncryption,options);if(options.oneofs)object.encryptionType="customerManagedEncryption"}return object};EncryptionConfig.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};EncryptionConfig.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Database.EncryptionConfig"};EncryptionConfig.GoogleDefaultEncryptionOptions=function(){function GoogleDefaultEncryptionOptions(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Database.EncryptionConfig.GoogleDefaultEncryptionOptions;while(reader.pos>>3){default:reader.skipType(tag&7,long);break}}return message};GoogleDefaultEncryptionOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GoogleDefaultEncryptionOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};GoogleDefaultEncryptionOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Database.EncryptionConfig.GoogleDefaultEncryptionOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.firestore.admin.v1.Database.EncryptionConfig.GoogleDefaultEncryptionOptions};GoogleDefaultEncryptionOptions.toObject=function toObject(){return{}};GoogleDefaultEncryptionOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GoogleDefaultEncryptionOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Database.EncryptionConfig.GoogleDefaultEncryptionOptions"};return GoogleDefaultEncryptionOptions}();EncryptionConfig.SourceEncryptionOptions=function(){function SourceEncryptionOptions(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Database.EncryptionConfig.SourceEncryptionOptions;while(reader.pos>>3){default:reader.skipType(tag&7,long);break}}return message};SourceEncryptionOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};SourceEncryptionOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};SourceEncryptionOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Database.EncryptionConfig.SourceEncryptionOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.firestore.admin.v1.Database.EncryptionConfig.SourceEncryptionOptions};SourceEncryptionOptions.toObject=function toObject(){return{}};SourceEncryptionOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};SourceEncryptionOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Database.EncryptionConfig.SourceEncryptionOptions"};return SourceEncryptionOptions}();EncryptionConfig.CustomerManagedEncryptionOptions=function(){function CustomerManagedEncryptionOptions(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Database.EncryptionConfig.CustomerManagedEncryptionOptions;while(reader.pos>>3){case 1:{message.kmsKeyName=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};CustomerManagedEncryptionOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CustomerManagedEncryptionOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.kmsKeyName!=null&&message.hasOwnProperty("kmsKeyName"))if(!$util.isString(message.kmsKeyName))return"kmsKeyName: string expected";return null};CustomerManagedEncryptionOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Database.EncryptionConfig.CustomerManagedEncryptionOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Database.EncryptionConfig.CustomerManagedEncryptionOptions;if(object.kmsKeyName!=null)message.kmsKeyName=String(object.kmsKeyName);return message};CustomerManagedEncryptionOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.kmsKeyName="";if(message.kmsKeyName!=null&&message.hasOwnProperty("kmsKeyName"))object.kmsKeyName=message.kmsKeyName;return object};CustomerManagedEncryptionOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CustomerManagedEncryptionOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Database.EncryptionConfig.CustomerManagedEncryptionOptions"};return CustomerManagedEncryptionOptions}();return EncryptionConfig}();Database.DatabaseEdition=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="DATABASE_EDITION_UNSPECIFIED"]=0;values[valuesById[1]="STANDARD"]=1;values[valuesById[2]="ENTERPRISE"]=2;return values}();Database.DataAccessMode=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="DATA_ACCESS_MODE_UNSPECIFIED"]=0;values[valuesById[1]="DATA_ACCESS_MODE_ENABLED"]=1;values[valuesById[2]="DATA_ACCESS_MODE_DISABLED"]=2;return values}();return Database}();v1.RealtimeUpdatesMode=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="REALTIME_UPDATES_MODE_UNSPECIFIED"]=0;values[valuesById[1]="REALTIME_UPDATES_MODE_ENABLED"]=1;values[valuesById[2]="REALTIME_UPDATES_MODE_DISABLED"]=2;return values}();v1.Field=function(){function Field(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Field;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{message.indexConfig=$root.google.firestore.admin.v1.Field.IndexConfig.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.ttlConfig=$root.google.firestore.admin.v1.Field.TtlConfig.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Field.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Field.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.indexConfig!=null&&message.hasOwnProperty("indexConfig")){var error=$root.google.firestore.admin.v1.Field.IndexConfig.verify(message.indexConfig,long+1);if(error)return"indexConfig."+error}if(message.ttlConfig!=null&&message.hasOwnProperty("ttlConfig")){var error=$root.google.firestore.admin.v1.Field.TtlConfig.verify(message.ttlConfig,long+1);if(error)return"ttlConfig."+error}return null};Field.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Field)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Field;if(object.name!=null)message.name=String(object.name);if(object.indexConfig!=null){if(typeof object.indexConfig!=="object")throw TypeError(".google.firestore.admin.v1.Field.indexConfig: object expected");message.indexConfig=$root.google.firestore.admin.v1.Field.IndexConfig.fromObject(object.indexConfig,long+1)}if(object.ttlConfig!=null){if(typeof object.ttlConfig!=="object")throw TypeError(".google.firestore.admin.v1.Field.ttlConfig: object expected");message.ttlConfig=$root.google.firestore.admin.v1.Field.TtlConfig.fromObject(object.ttlConfig,long+1)}return message};Field.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.indexConfig=null;object.ttlConfig=null}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.indexConfig!=null&&message.hasOwnProperty("indexConfig"))object.indexConfig=$root.google.firestore.admin.v1.Field.IndexConfig.toObject(message.indexConfig,options);if(message.ttlConfig!=null&&message.hasOwnProperty("ttlConfig"))object.ttlConfig=$root.google.firestore.admin.v1.Field.TtlConfig.toObject(message.ttlConfig,options);return object};Field.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Field.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Field"};Field.IndexConfig=function(){function IndexConfig(properties){this.indexes=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Field.IndexConfig;while(reader.pos>>3){case 1:{if(!(message.indexes&&message.indexes.length))message.indexes=[];message.indexes.push($root.google.firestore.admin.v1.Index.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.usesAncestorConfig=reader.bool();break}case 3:{message.ancestorField=reader.string();break}case 4:{message.reverting=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};IndexConfig.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};IndexConfig.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.indexes!=null&&message.hasOwnProperty("indexes")){if(!Array.isArray(message.indexes))return"indexes: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Field.IndexConfig;if(object.indexes){if(!Array.isArray(object.indexes))throw TypeError(".google.firestore.admin.v1.Field.IndexConfig.indexes: array expected");message.indexes=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Field.TtlConfig;while(reader.pos>>3){case 1:{message.state=reader.int32();break}case 3:{message.expirationOffset=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};TtlConfig.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};TtlConfig.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.state!=null&&message.hasOwnProperty("state"))switch(message.state){default:return"state: enum value expected";case 0:case 1:case 2:case 3:break}if(message.expirationOffset!=null&&message.hasOwnProperty("expirationOffset")){var error=$root.google.protobuf.Duration.verify(message.expirationOffset,long+1);if(error)return"expirationOffset."+error}return null};TtlConfig.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Field.TtlConfig)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Field.TtlConfig;switch(object.state){default:if(typeof object.state==="number"){message.state=object.state;break}break;case"STATE_UNSPECIFIED":case 0:message.state=0;break;case"CREATING":case 1:message.state=1;break;case"ACTIVE":case 2:message.state=2;break;case"NEEDS_REPAIR":case 3:message.state=3;break}if(object.expirationOffset!=null){if(typeof object.expirationOffset!=="object")throw TypeError(".google.firestore.admin.v1.Field.TtlConfig.expirationOffset: object expected");message.expirationOffset=$root.google.protobuf.Duration.fromObject(object.expirationOffset,long+1)}return message};TtlConfig.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.state=options.enums===String?"STATE_UNSPECIFIED":0;object.expirationOffset=null}if(message.state!=null&&message.hasOwnProperty("state"))object.state=options.enums===String?$root.google.firestore.admin.v1.Field.TtlConfig.State[message.state]===undefined?message.state:$root.google.firestore.admin.v1.Field.TtlConfig.State[message.state]:message.state;if(message.expirationOffset!=null&&message.hasOwnProperty("expirationOffset"))object.expirationOffset=$root.google.protobuf.Duration.toObject(message.expirationOffset,options);return object};TtlConfig.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};TtlConfig.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Field.TtlConfig"};TtlConfig.State=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="STATE_UNSPECIFIED"]=0;values[valuesById[1]="CREATING"]=1;values[valuesById[2]="ACTIVE"]=2;values[valuesById[3]="NEEDS_REPAIR"]=3;return values}();return TtlConfig}();return Field}();v1.Index=function(){function Index(properties){this.fields=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Index;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{message.queryScope=reader.int32();break}case 5:{message.apiScope=reader.int32();break}case 3:{if(!(message.fields&&message.fields.length))message.fields=[];message.fields.push($root.google.firestore.admin.v1.Index.IndexField.decode(reader,reader.uint32(),undefined,long+1));break}case 4:{message.state=reader.int32();break}case 6:{message.density=reader.int32();break}case 7:{message.multikey=reader.bool();break}case 8:{message.shardCount=reader.int32();break}case 10:{message.unique=reader.bool();break}case 9:{message.searchIndexOptions=$root.google.firestore.admin.v1.Index.SearchIndexOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Index.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Index.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.queryScope!=null&&message.hasOwnProperty("queryScope"))switch(message.queryScope){default:return"queryScope: enum value expected";case 0:case 1:case 2:case 3:break}if(message.apiScope!=null&&message.hasOwnProperty("apiScope"))switch(message.apiScope){default:return"apiScope: enum value expected";case 0:case 1:case 2:break}if(message.fields!=null&&message.hasOwnProperty("fields")){if(!Array.isArray(message.fields))return"fields: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Index;if(object.name!=null)message.name=String(object.name);switch(object.queryScope){default:if(typeof object.queryScope==="number"){message.queryScope=object.queryScope;break}break;case"QUERY_SCOPE_UNSPECIFIED":case 0:message.queryScope=0;break;case"COLLECTION":case 1:message.queryScope=1;break;case"COLLECTION_GROUP":case 2:message.queryScope=2;break;case"COLLECTION_RECURSIVE":case 3:message.queryScope=3;break}switch(object.apiScope){default:if(typeof object.apiScope==="number"){message.apiScope=object.apiScope;break}break;case"ANY_API":case 0:message.apiScope=0;break;case"DATASTORE_MODE_API":case 1:message.apiScope=1;break;case"MONGODB_COMPATIBLE_API":case 2:message.apiScope=2;break}if(object.fields){if(!Array.isArray(object.fields))throw TypeError(".google.firestore.admin.v1.Index.fields: array expected");message.fields=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Index.IndexField;while(reader.pos>>3){case 1:{message.fieldPath=reader.string();break}case 2:{message.order=reader.int32();break}case 3:{message.arrayConfig=reader.int32();break}case 4:{message.vectorConfig=$root.google.firestore.admin.v1.Index.IndexField.VectorConfig.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.searchConfig=$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};IndexField.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};IndexField.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.fieldPath!=null&&message.hasOwnProperty("fieldPath"))if(!$util.isString(message.fieldPath))return"fieldPath: string expected";if(message.order!=null&&message.hasOwnProperty("order")){properties.valueMode=1;switch(message.order){default:return"order: enum value expected";case 0:case 1:case 2:break}}if(message.arrayConfig!=null&&message.hasOwnProperty("arrayConfig")){if(properties.valueMode===1)return"valueMode: multiple values";properties.valueMode=1;switch(message.arrayConfig){default:return"arrayConfig: enum value expected";case 0:case 1:break}}if(message.vectorConfig!=null&&message.hasOwnProperty("vectorConfig")){if(properties.valueMode===1)return"valueMode: multiple values";properties.valueMode=1;{var error=$root.google.firestore.admin.v1.Index.IndexField.VectorConfig.verify(message.vectorConfig,long+1);if(error)return"vectorConfig."+error}}if(message.searchConfig!=null&&message.hasOwnProperty("searchConfig")){if(properties.valueMode===1)return"valueMode: multiple values";properties.valueMode=1;{var error=$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.verify(message.searchConfig,long+1);if(error)return"searchConfig."+error}}return null};IndexField.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Index.IndexField)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Index.IndexField;if(object.fieldPath!=null)message.fieldPath=String(object.fieldPath);switch(object.order){default:if(typeof object.order==="number"){message.order=object.order;break}break;case"ORDER_UNSPECIFIED":case 0:message.order=0;break;case"ASCENDING":case 1:message.order=1;break;case"DESCENDING":case 2:message.order=2;break}switch(object.arrayConfig){default:if(typeof object.arrayConfig==="number"){message.arrayConfig=object.arrayConfig;break}break;case"ARRAY_CONFIG_UNSPECIFIED":case 0:message.arrayConfig=0;break;case"CONTAINS":case 1:message.arrayConfig=1;break}if(object.vectorConfig!=null){if(typeof object.vectorConfig!=="object")throw TypeError(".google.firestore.admin.v1.Index.IndexField.vectorConfig: object expected");message.vectorConfig=$root.google.firestore.admin.v1.Index.IndexField.VectorConfig.fromObject(object.vectorConfig,long+1)}if(object.searchConfig!=null){if(typeof object.searchConfig!=="object")throw TypeError(".google.firestore.admin.v1.Index.IndexField.searchConfig: object expected");message.searchConfig=$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.fromObject(object.searchConfig,long+1)}return message};IndexField.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.fieldPath="";if(message.fieldPath!=null&&message.hasOwnProperty("fieldPath"))object.fieldPath=message.fieldPath;if(message.order!=null&&message.hasOwnProperty("order")){object.order=options.enums===String?$root.google.firestore.admin.v1.Index.IndexField.Order[message.order]===undefined?message.order:$root.google.firestore.admin.v1.Index.IndexField.Order[message.order]:message.order;if(options.oneofs)object.valueMode="order"}if(message.arrayConfig!=null&&message.hasOwnProperty("arrayConfig")){object.arrayConfig=options.enums===String?$root.google.firestore.admin.v1.Index.IndexField.ArrayConfig[message.arrayConfig]===undefined?message.arrayConfig:$root.google.firestore.admin.v1.Index.IndexField.ArrayConfig[message.arrayConfig]:message.arrayConfig;if(options.oneofs)object.valueMode="arrayConfig"}if(message.vectorConfig!=null&&message.hasOwnProperty("vectorConfig")){object.vectorConfig=$root.google.firestore.admin.v1.Index.IndexField.VectorConfig.toObject(message.vectorConfig,options);if(options.oneofs)object.valueMode="vectorConfig"}if(message.searchConfig!=null&&message.hasOwnProperty("searchConfig")){object.searchConfig=$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.toObject(message.searchConfig,options);if(options.oneofs)object.valueMode="searchConfig"}return object};IndexField.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};IndexField.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Index.IndexField"};IndexField.Order=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="ORDER_UNSPECIFIED"]=0;values[valuesById[1]="ASCENDING"]=1;values[valuesById[2]="DESCENDING"]=2;return values}();IndexField.ArrayConfig=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="ARRAY_CONFIG_UNSPECIFIED"]=0;values[valuesById[1]="CONTAINS"]=1;return values}();IndexField.VectorConfig=function(){function VectorConfig(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Index.IndexField.VectorConfig;while(reader.pos>>3){case 1:{message.dimension=reader.int32();break}case 2:{message.flat=$root.google.firestore.admin.v1.Index.IndexField.VectorConfig.FlatIndex.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};VectorConfig.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};VectorConfig.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.dimension!=null&&message.hasOwnProperty("dimension"))if(!$util.isInteger(message.dimension))return"dimension: integer expected";if(message.flat!=null&&message.hasOwnProperty("flat")){properties.type=1;{var error=$root.google.firestore.admin.v1.Index.IndexField.VectorConfig.FlatIndex.verify(message.flat,long+1);if(error)return"flat."+error}}return null};VectorConfig.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Index.IndexField.VectorConfig)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Index.IndexField.VectorConfig;if(object.dimension!=null)message.dimension=object.dimension|0;if(object.flat!=null){if(typeof object.flat!=="object")throw TypeError(".google.firestore.admin.v1.Index.IndexField.VectorConfig.flat: object expected");message.flat=$root.google.firestore.admin.v1.Index.IndexField.VectorConfig.FlatIndex.fromObject(object.flat,long+1)}return message};VectorConfig.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.dimension=0;if(message.dimension!=null&&message.hasOwnProperty("dimension"))object.dimension=message.dimension;if(message.flat!=null&&message.hasOwnProperty("flat")){object.flat=$root.google.firestore.admin.v1.Index.IndexField.VectorConfig.FlatIndex.toObject(message.flat,options);if(options.oneofs)object.type="flat"}return object};VectorConfig.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};VectorConfig.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Index.IndexField.VectorConfig"};VectorConfig.FlatIndex=function(){function FlatIndex(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Index.IndexField.VectorConfig.FlatIndex;while(reader.pos>>3){default:reader.skipType(tag&7,long);break}}return message};FlatIndex.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FlatIndex.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};FlatIndex.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Index.IndexField.VectorConfig.FlatIndex)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.firestore.admin.v1.Index.IndexField.VectorConfig.FlatIndex};FlatIndex.toObject=function toObject(){return{}};FlatIndex.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FlatIndex.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Index.IndexField.VectorConfig.FlatIndex"};return FlatIndex}();return VectorConfig}();IndexField.SearchConfig=function(){function SearchConfig(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Index.IndexField.SearchConfig;while(reader.pos>>3){case 1:{message.textSpec=$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.geoSpec=$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};SearchConfig.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};SearchConfig.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.textSpec!=null&&message.hasOwnProperty("textSpec")){var error=$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec.verify(message.textSpec,long+1);if(error)return"textSpec."+error}if(message.geoSpec!=null&&message.hasOwnProperty("geoSpec")){var error=$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec.verify(message.geoSpec,long+1);if(error)return"geoSpec."+error}return null};SearchConfig.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Index.IndexField.SearchConfig)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Index.IndexField.SearchConfig;if(object.textSpec!=null){if(typeof object.textSpec!=="object")throw TypeError(".google.firestore.admin.v1.Index.IndexField.SearchConfig.textSpec: object expected");message.textSpec=$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec.fromObject(object.textSpec,long+1)}if(object.geoSpec!=null){if(typeof object.geoSpec!=="object")throw TypeError(".google.firestore.admin.v1.Index.IndexField.SearchConfig.geoSpec: object expected");message.geoSpec=$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec.fromObject(object.geoSpec,long+1)}return message};SearchConfig.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.textSpec=null;object.geoSpec=null}if(message.textSpec!=null&&message.hasOwnProperty("textSpec"))object.textSpec=$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec.toObject(message.textSpec,options);if(message.geoSpec!=null&&message.hasOwnProperty("geoSpec"))object.geoSpec=$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec.toObject(message.geoSpec,options);return object};SearchConfig.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};SearchConfig.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Index.IndexField.SearchConfig"};SearchConfig.TextIndexType=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="TEXT_INDEX_TYPE_UNSPECIFIED"]=0;values[valuesById[1]="TOKENIZED"]=1;return values}();SearchConfig.TextMatchType=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="TEXT_MATCH_TYPE_UNSPECIFIED"]=0;values[valuesById[1]="MATCH_GLOBALLY"]=1;return values}();SearchConfig.SearchTextIndexSpec=function(){function SearchTextIndexSpec(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec;while(reader.pos>>3){case 1:{message.indexType=reader.int32();break}case 2:{message.matchType=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};SearchTextIndexSpec.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};SearchTextIndexSpec.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.indexType!=null&&message.hasOwnProperty("indexType"))switch(message.indexType){default:return"indexType: enum value expected";case 0:case 1:break}if(message.matchType!=null&&message.hasOwnProperty("matchType"))switch(message.matchType){default:return"matchType: enum value expected";case 0:case 1:break}return null};SearchTextIndexSpec.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec;switch(object.indexType){default:if(typeof object.indexType==="number"){message.indexType=object.indexType;break}break;case"TEXT_INDEX_TYPE_UNSPECIFIED":case 0:message.indexType=0;break;case"TOKENIZED":case 1:message.indexType=1;break}switch(object.matchType){default:if(typeof object.matchType==="number"){message.matchType=object.matchType;break}break;case"TEXT_MATCH_TYPE_UNSPECIFIED":case 0:message.matchType=0;break;case"MATCH_GLOBALLY":case 1:message.matchType=1;break}return message};SearchTextIndexSpec.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.indexType=options.enums===String?"TEXT_INDEX_TYPE_UNSPECIFIED":0;object.matchType=options.enums===String?"TEXT_MATCH_TYPE_UNSPECIFIED":0}if(message.indexType!=null&&message.hasOwnProperty("indexType"))object.indexType=options.enums===String?$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType[message.indexType]===undefined?message.indexType:$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextIndexType[message.indexType]:message.indexType;if(message.matchType!=null&&message.hasOwnProperty("matchType"))object.matchType=options.enums===String?$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType[message.matchType]===undefined?message.matchType:$root.google.firestore.admin.v1.Index.IndexField.SearchConfig.TextMatchType[message.matchType]:message.matchType;return object};SearchTextIndexSpec.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};SearchTextIndexSpec.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec"};return SearchTextIndexSpec}();SearchConfig.SearchTextSpec=function(){function SearchTextSpec(properties){this.indexSpecs=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec;while(reader.pos>>3){case 1:{if(!(message.indexSpecs&&message.indexSpecs.length))message.indexSpecs=[];message.indexSpecs.push($root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextIndexSpec.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};SearchTextSpec.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};SearchTextSpec.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.indexSpecs!=null&&message.hasOwnProperty("indexSpecs")){if(!Array.isArray(message.indexSpecs))return"indexSpecs: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec;if(object.indexSpecs){if(!Array.isArray(object.indexSpecs))throw TypeError(".google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchTextSpec.indexSpecs: array expected");message.indexSpecs=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec;while(reader.pos>>3){case 1:{message.geoJsonIndexingDisabled=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};SearchGeoSpec.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};SearchGeoSpec.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.geoJsonIndexingDisabled!=null&&message.hasOwnProperty("geoJsonIndexingDisabled"))if(typeof message.geoJsonIndexingDisabled!=="boolean")return"geoJsonIndexingDisabled: boolean expected";return null};SearchGeoSpec.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec;if(object.geoJsonIndexingDisabled!=null)message.geoJsonIndexingDisabled=Boolean(object.geoJsonIndexingDisabled);return message};SearchGeoSpec.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.geoJsonIndexingDisabled=false;if(message.geoJsonIndexingDisabled!=null&&message.hasOwnProperty("geoJsonIndexingDisabled"))object.geoJsonIndexingDisabled=message.geoJsonIndexingDisabled;return object};SearchGeoSpec.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};SearchGeoSpec.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Index.IndexField.SearchConfig.SearchGeoSpec"};return SearchGeoSpec}();return SearchConfig}();return IndexField}();Index.State=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="STATE_UNSPECIFIED"]=0;values[valuesById[1]="CREATING"]=1;values[valuesById[2]="READY"]=2;values[valuesById[3]="NEEDS_REPAIR"]=3;return values}();Index.Density=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="DENSITY_UNSPECIFIED"]=0;values[valuesById[1]="SPARSE_ALL"]=1;values[valuesById[2]="SPARSE_ANY"]=2;values[valuesById[3]="DENSE"]=3;return values}();Index.SearchIndexOptions=function(){function SearchIndexOptions(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Index.SearchIndexOptions;while(reader.pos>>3){case 1:{message.textLanguage=reader.string();break}case 2:{message.textLanguageOverrideFieldPath=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};SearchIndexOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};SearchIndexOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.textLanguage!=null&&message.hasOwnProperty("textLanguage"))if(!$util.isString(message.textLanguage))return"textLanguage: string expected";if(message.textLanguageOverrideFieldPath!=null&&message.hasOwnProperty("textLanguageOverrideFieldPath"))if(!$util.isString(message.textLanguageOverrideFieldPath))return"textLanguageOverrideFieldPath: string expected";return null};SearchIndexOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Index.SearchIndexOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Index.SearchIndexOptions;if(object.textLanguage!=null)message.textLanguage=String(object.textLanguage);if(object.textLanguageOverrideFieldPath!=null)message.textLanguageOverrideFieldPath=String(object.textLanguageOverrideFieldPath);return message};SearchIndexOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.textLanguage="";object.textLanguageOverrideFieldPath=""}if(message.textLanguage!=null&&message.hasOwnProperty("textLanguage"))object.textLanguage=message.textLanguage;if(message.textLanguageOverrideFieldPath!=null&&message.hasOwnProperty("textLanguageOverrideFieldPath"))object.textLanguageOverrideFieldPath=message.textLanguageOverrideFieldPath;return object};SearchIndexOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};SearchIndexOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Index.SearchIndexOptions"};return SearchIndexOptions}();return Index}();v1.FirestoreAdmin=function(){function FirestoreAdmin(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited)}(FirestoreAdmin.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=FirestoreAdmin;FirestoreAdmin.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited)};Object.defineProperty(FirestoreAdmin.prototype.createIndex=function createIndex(request,callback){return this.rpcCall(createIndex,$root.google.firestore.admin.v1.CreateIndexRequest,$root.google.longrunning.Operation,request,callback)},"name",{value:"CreateIndex"});Object.defineProperty(FirestoreAdmin.prototype.listIndexes=function listIndexes(request,callback){return this.rpcCall(listIndexes,$root.google.firestore.admin.v1.ListIndexesRequest,$root.google.firestore.admin.v1.ListIndexesResponse,request,callback)},"name",{value:"ListIndexes"});Object.defineProperty(FirestoreAdmin.prototype.getIndex=function getIndex(request,callback){return this.rpcCall(getIndex,$root.google.firestore.admin.v1.GetIndexRequest,$root.google.firestore.admin.v1.Index,request,callback)},"name",{value:"GetIndex"});Object.defineProperty(FirestoreAdmin.prototype.deleteIndex=function deleteIndex(request,callback){return this.rpcCall(deleteIndex,$root.google.firestore.admin.v1.DeleteIndexRequest,$root.google.protobuf.Empty,request,callback)},"name",{value:"DeleteIndex"});Object.defineProperty(FirestoreAdmin.prototype.getField=function getField(request,callback){return this.rpcCall(getField,$root.google.firestore.admin.v1.GetFieldRequest,$root.google.firestore.admin.v1.Field,request,callback)},"name",{value:"GetField"});Object.defineProperty(FirestoreAdmin.prototype.updateField=function updateField(request,callback){return this.rpcCall(updateField,$root.google.firestore.admin.v1.UpdateFieldRequest,$root.google.longrunning.Operation,request,callback)},"name",{value:"UpdateField"});Object.defineProperty(FirestoreAdmin.prototype.listFields=function listFields(request,callback){return this.rpcCall(listFields,$root.google.firestore.admin.v1.ListFieldsRequest,$root.google.firestore.admin.v1.ListFieldsResponse,request,callback)},"name",{value:"ListFields"});Object.defineProperty(FirestoreAdmin.prototype.exportDocuments=function exportDocuments(request,callback){return this.rpcCall(exportDocuments,$root.google.firestore.admin.v1.ExportDocumentsRequest,$root.google.longrunning.Operation,request,callback)},"name",{value:"ExportDocuments"});Object.defineProperty(FirestoreAdmin.prototype.importDocuments=function importDocuments(request,callback){return this.rpcCall(importDocuments,$root.google.firestore.admin.v1.ImportDocumentsRequest,$root.google.longrunning.Operation,request,callback)},"name",{value:"ImportDocuments"});Object.defineProperty(FirestoreAdmin.prototype.bulkDeleteDocuments=function bulkDeleteDocuments(request,callback){return this.rpcCall(bulkDeleteDocuments,$root.google.firestore.admin.v1.BulkDeleteDocumentsRequest,$root.google.longrunning.Operation,request,callback)},"name",{value:"BulkDeleteDocuments"});Object.defineProperty(FirestoreAdmin.prototype.createDatabase=function createDatabase(request,callback){return this.rpcCall(createDatabase,$root.google.firestore.admin.v1.CreateDatabaseRequest,$root.google.longrunning.Operation,request,callback)},"name",{value:"CreateDatabase"});Object.defineProperty(FirestoreAdmin.prototype.getDatabase=function getDatabase(request,callback){return this.rpcCall(getDatabase,$root.google.firestore.admin.v1.GetDatabaseRequest,$root.google.firestore.admin.v1.Database,request,callback)},"name",{value:"GetDatabase"});Object.defineProperty(FirestoreAdmin.prototype.listDatabases=function listDatabases(request,callback){return this.rpcCall(listDatabases,$root.google.firestore.admin.v1.ListDatabasesRequest,$root.google.firestore.admin.v1.ListDatabasesResponse,request,callback)},"name",{value:"ListDatabases"});Object.defineProperty(FirestoreAdmin.prototype.updateDatabase=function updateDatabase(request,callback){return this.rpcCall(updateDatabase,$root.google.firestore.admin.v1.UpdateDatabaseRequest,$root.google.longrunning.Operation,request,callback)},"name",{value:"UpdateDatabase"});Object.defineProperty(FirestoreAdmin.prototype.deleteDatabase=function deleteDatabase(request,callback){return this.rpcCall(deleteDatabase,$root.google.firestore.admin.v1.DeleteDatabaseRequest,$root.google.longrunning.Operation,request,callback)},"name",{value:"DeleteDatabase"});Object.defineProperty(FirestoreAdmin.prototype.createUserCreds=function createUserCreds(request,callback){return this.rpcCall(createUserCreds,$root.google.firestore.admin.v1.CreateUserCredsRequest,$root.google.firestore.admin.v1.UserCreds,request,callback)},"name",{value:"CreateUserCreds"});Object.defineProperty(FirestoreAdmin.prototype.getUserCreds=function getUserCreds(request,callback){return this.rpcCall(getUserCreds,$root.google.firestore.admin.v1.GetUserCredsRequest,$root.google.firestore.admin.v1.UserCreds,request,callback)},"name",{value:"GetUserCreds"});Object.defineProperty(FirestoreAdmin.prototype.listUserCreds=function listUserCreds(request,callback){return this.rpcCall(listUserCreds,$root.google.firestore.admin.v1.ListUserCredsRequest,$root.google.firestore.admin.v1.ListUserCredsResponse,request,callback)},"name",{value:"ListUserCreds"});Object.defineProperty(FirestoreAdmin.prototype.enableUserCreds=function enableUserCreds(request,callback){return this.rpcCall(enableUserCreds,$root.google.firestore.admin.v1.EnableUserCredsRequest,$root.google.firestore.admin.v1.UserCreds,request,callback)},"name",{value:"EnableUserCreds"});Object.defineProperty(FirestoreAdmin.prototype.disableUserCreds=function disableUserCreds(request,callback){return this.rpcCall(disableUserCreds,$root.google.firestore.admin.v1.DisableUserCredsRequest,$root.google.firestore.admin.v1.UserCreds,request,callback)},"name",{value:"DisableUserCreds"});Object.defineProperty(FirestoreAdmin.prototype.resetUserPassword=function resetUserPassword(request,callback){return this.rpcCall(resetUserPassword,$root.google.firestore.admin.v1.ResetUserPasswordRequest,$root.google.firestore.admin.v1.UserCreds,request,callback)},"name",{value:"ResetUserPassword"});Object.defineProperty(FirestoreAdmin.prototype.deleteUserCreds=function deleteUserCreds(request,callback){return this.rpcCall(deleteUserCreds,$root.google.firestore.admin.v1.DeleteUserCredsRequest,$root.google.protobuf.Empty,request,callback)},"name",{value:"DeleteUserCreds"});Object.defineProperty(FirestoreAdmin.prototype.getBackup=function getBackup(request,callback){return this.rpcCall(getBackup,$root.google.firestore.admin.v1.GetBackupRequest,$root.google.firestore.admin.v1.Backup,request,callback)},"name",{value:"GetBackup"});Object.defineProperty(FirestoreAdmin.prototype.listBackups=function listBackups(request,callback){return this.rpcCall(listBackups,$root.google.firestore.admin.v1.ListBackupsRequest,$root.google.firestore.admin.v1.ListBackupsResponse,request,callback)},"name",{value:"ListBackups"});Object.defineProperty(FirestoreAdmin.prototype.deleteBackup=function deleteBackup(request,callback){return this.rpcCall(deleteBackup,$root.google.firestore.admin.v1.DeleteBackupRequest,$root.google.protobuf.Empty,request,callback)},"name",{value:"DeleteBackup"});Object.defineProperty(FirestoreAdmin.prototype.restoreDatabase=function restoreDatabase(request,callback){return this.rpcCall(restoreDatabase,$root.google.firestore.admin.v1.RestoreDatabaseRequest,$root.google.longrunning.Operation,request,callback)},"name",{value:"RestoreDatabase"});Object.defineProperty(FirestoreAdmin.prototype.createBackupSchedule=function createBackupSchedule(request,callback){return this.rpcCall(createBackupSchedule,$root.google.firestore.admin.v1.CreateBackupScheduleRequest,$root.google.firestore.admin.v1.BackupSchedule,request,callback)},"name",{value:"CreateBackupSchedule"});Object.defineProperty(FirestoreAdmin.prototype.getBackupSchedule=function getBackupSchedule(request,callback){return this.rpcCall(getBackupSchedule,$root.google.firestore.admin.v1.GetBackupScheduleRequest,$root.google.firestore.admin.v1.BackupSchedule,request,callback)},"name",{value:"GetBackupSchedule"});Object.defineProperty(FirestoreAdmin.prototype.listBackupSchedules=function listBackupSchedules(request,callback){return this.rpcCall(listBackupSchedules,$root.google.firestore.admin.v1.ListBackupSchedulesRequest,$root.google.firestore.admin.v1.ListBackupSchedulesResponse,request,callback)},"name",{value:"ListBackupSchedules"});Object.defineProperty(FirestoreAdmin.prototype.updateBackupSchedule=function updateBackupSchedule(request,callback){return this.rpcCall(updateBackupSchedule,$root.google.firestore.admin.v1.UpdateBackupScheduleRequest,$root.google.firestore.admin.v1.BackupSchedule,request,callback)},"name",{value:"UpdateBackupSchedule"});Object.defineProperty(FirestoreAdmin.prototype.deleteBackupSchedule=function deleteBackupSchedule(request,callback){return this.rpcCall(deleteBackupSchedule,$root.google.firestore.admin.v1.DeleteBackupScheduleRequest,$root.google.protobuf.Empty,request,callback)},"name",{value:"DeleteBackupSchedule"});Object.defineProperty(FirestoreAdmin.prototype.cloneDatabase=function cloneDatabase(request,callback){return this.rpcCall(cloneDatabase,$root.google.firestore.admin.v1.CloneDatabaseRequest,$root.google.longrunning.Operation,request,callback)},"name",{value:"CloneDatabase"});return FirestoreAdmin}();v1.ListDatabasesRequest=function(){function ListDatabasesRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ListDatabasesRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 4:{message.showDeleted=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};ListDatabasesRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListDatabasesRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.showDeleted!=null&&message.hasOwnProperty("showDeleted"))if(typeof message.showDeleted!=="boolean")return"showDeleted: boolean expected";return null};ListDatabasesRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.ListDatabasesRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ListDatabasesRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.showDeleted!=null)message.showDeleted=Boolean(object.showDeleted);return message};ListDatabasesRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.showDeleted=false}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.showDeleted!=null&&message.hasOwnProperty("showDeleted"))object.showDeleted=message.showDeleted;return object};ListDatabasesRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ListDatabasesRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.ListDatabasesRequest"};return ListDatabasesRequest}();v1.CreateDatabaseRequest=function(){function CreateDatabaseRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.CreateDatabaseRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.database=$root.google.firestore.admin.v1.Database.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.databaseId=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};CreateDatabaseRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CreateDatabaseRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.database!=null&&message.hasOwnProperty("database")){var error=$root.google.firestore.admin.v1.Database.verify(message.database,long+1);if(error)return"database."+error}if(message.databaseId!=null&&message.hasOwnProperty("databaseId"))if(!$util.isString(message.databaseId))return"databaseId: string expected";return null};CreateDatabaseRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.CreateDatabaseRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.CreateDatabaseRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.database!=null){if(typeof object.database!=="object")throw TypeError(".google.firestore.admin.v1.CreateDatabaseRequest.database: object expected");message.database=$root.google.firestore.admin.v1.Database.fromObject(object.database,long+1)}if(object.databaseId!=null)message.databaseId=String(object.databaseId);return message};CreateDatabaseRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.database=null;object.databaseId=""}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.database!=null&&message.hasOwnProperty("database"))object.database=$root.google.firestore.admin.v1.Database.toObject(message.database,options);if(message.databaseId!=null&&message.hasOwnProperty("databaseId"))object.databaseId=message.databaseId;return object};CreateDatabaseRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CreateDatabaseRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.CreateDatabaseRequest"};return CreateDatabaseRequest}();v1.CreateDatabaseMetadata=function(){function CreateDatabaseMetadata(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.CreateDatabaseMetadata;while(reader.pos>>3){default:reader.skipType(tag&7,long);break}}return message};CreateDatabaseMetadata.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CreateDatabaseMetadata.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};CreateDatabaseMetadata.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.CreateDatabaseMetadata)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.firestore.admin.v1.CreateDatabaseMetadata};CreateDatabaseMetadata.toObject=function toObject(){return{}};CreateDatabaseMetadata.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CreateDatabaseMetadata.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.CreateDatabaseMetadata"};return CreateDatabaseMetadata}();v1.ListDatabasesResponse=function(){function ListDatabasesResponse(properties){this.databases=[];this.unreachable=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ListDatabasesResponse;while(reader.pos>>3){case 1:{if(!(message.databases&&message.databases.length))message.databases=[];message.databases.push($root.google.firestore.admin.v1.Database.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{if(!(message.unreachable&&message.unreachable.length))message.unreachable=[];message.unreachable.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};ListDatabasesResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListDatabasesResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.databases!=null&&message.hasOwnProperty("databases")){if(!Array.isArray(message.databases))return"databases: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ListDatabasesResponse;if(object.databases){if(!Array.isArray(object.databases))throw TypeError(".google.firestore.admin.v1.ListDatabasesResponse.databases: array expected");message.databases=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.GetDatabaseRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};GetDatabaseRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GetDatabaseRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};GetDatabaseRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.GetDatabaseRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.GetDatabaseRequest;if(object.name!=null)message.name=String(object.name);return message};GetDatabaseRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};GetDatabaseRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GetDatabaseRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.GetDatabaseRequest"};return GetDatabaseRequest}();v1.UpdateDatabaseRequest=function(){function UpdateDatabaseRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.UpdateDatabaseRequest;while(reader.pos>>3){case 1:{message.database=$root.google.firestore.admin.v1.Database.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.updateMask=$root.google.protobuf.FieldMask.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};UpdateDatabaseRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UpdateDatabaseRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.database!=null&&message.hasOwnProperty("database")){var error=$root.google.firestore.admin.v1.Database.verify(message.database,long+1);if(error)return"database."+error}if(message.updateMask!=null&&message.hasOwnProperty("updateMask")){var error=$root.google.protobuf.FieldMask.verify(message.updateMask,long+1);if(error)return"updateMask."+error}return null};UpdateDatabaseRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.UpdateDatabaseRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.UpdateDatabaseRequest;if(object.database!=null){if(typeof object.database!=="object")throw TypeError(".google.firestore.admin.v1.UpdateDatabaseRequest.database: object expected");message.database=$root.google.firestore.admin.v1.Database.fromObject(object.database,long+1)}if(object.updateMask!=null){if(typeof object.updateMask!=="object")throw TypeError(".google.firestore.admin.v1.UpdateDatabaseRequest.updateMask: object expected");message.updateMask=$root.google.protobuf.FieldMask.fromObject(object.updateMask,long+1)}return message};UpdateDatabaseRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.database=null;object.updateMask=null}if(message.database!=null&&message.hasOwnProperty("database"))object.database=$root.google.firestore.admin.v1.Database.toObject(message.database,options);if(message.updateMask!=null&&message.hasOwnProperty("updateMask"))object.updateMask=$root.google.protobuf.FieldMask.toObject(message.updateMask,options);return object};UpdateDatabaseRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UpdateDatabaseRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.UpdateDatabaseRequest"};return UpdateDatabaseRequest}();v1.UpdateDatabaseMetadata=function(){function UpdateDatabaseMetadata(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.UpdateDatabaseMetadata;while(reader.pos>>3){default:reader.skipType(tag&7,long);break}}return message};UpdateDatabaseMetadata.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UpdateDatabaseMetadata.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};UpdateDatabaseMetadata.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.UpdateDatabaseMetadata)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.firestore.admin.v1.UpdateDatabaseMetadata};UpdateDatabaseMetadata.toObject=function toObject(){return{}};UpdateDatabaseMetadata.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UpdateDatabaseMetadata.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.UpdateDatabaseMetadata"};return UpdateDatabaseMetadata}();v1.DeleteDatabaseRequest=function(){function DeleteDatabaseRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.DeleteDatabaseRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 3:{message.etag=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};DeleteDatabaseRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DeleteDatabaseRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.etag!=null&&message.hasOwnProperty("etag"))if(!$util.isString(message.etag))return"etag: string expected";return null};DeleteDatabaseRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.DeleteDatabaseRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.DeleteDatabaseRequest;if(object.name!=null)message.name=String(object.name);if(object.etag!=null)message.etag=String(object.etag);return message};DeleteDatabaseRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.etag=""}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.etag!=null&&message.hasOwnProperty("etag"))object.etag=message.etag;return object};DeleteDatabaseRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DeleteDatabaseRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.DeleteDatabaseRequest"};return DeleteDatabaseRequest}();v1.DeleteDatabaseMetadata=function(){function DeleteDatabaseMetadata(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.DeleteDatabaseMetadata;while(reader.pos>>3){default:reader.skipType(tag&7,long);break}}return message};DeleteDatabaseMetadata.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DeleteDatabaseMetadata.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};DeleteDatabaseMetadata.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.DeleteDatabaseMetadata)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.firestore.admin.v1.DeleteDatabaseMetadata};DeleteDatabaseMetadata.toObject=function toObject(){return{}};DeleteDatabaseMetadata.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DeleteDatabaseMetadata.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.DeleteDatabaseMetadata"};return DeleteDatabaseMetadata}();v1.CreateUserCredsRequest=function(){function CreateUserCredsRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.CreateUserCredsRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.userCreds=$root.google.firestore.admin.v1.UserCreds.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.userCredsId=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};CreateUserCredsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CreateUserCredsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.userCreds!=null&&message.hasOwnProperty("userCreds")){var error=$root.google.firestore.admin.v1.UserCreds.verify(message.userCreds,long+1);if(error)return"userCreds."+error}if(message.userCredsId!=null&&message.hasOwnProperty("userCredsId"))if(!$util.isString(message.userCredsId))return"userCredsId: string expected";return null};CreateUserCredsRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.CreateUserCredsRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.CreateUserCredsRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.userCreds!=null){if(typeof object.userCreds!=="object")throw TypeError(".google.firestore.admin.v1.CreateUserCredsRequest.userCreds: object expected");message.userCreds=$root.google.firestore.admin.v1.UserCreds.fromObject(object.userCreds,long+1)}if(object.userCredsId!=null)message.userCredsId=String(object.userCredsId);return message};CreateUserCredsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.userCreds=null;object.userCredsId=""}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.userCreds!=null&&message.hasOwnProperty("userCreds"))object.userCreds=$root.google.firestore.admin.v1.UserCreds.toObject(message.userCreds,options);if(message.userCredsId!=null&&message.hasOwnProperty("userCredsId"))object.userCredsId=message.userCredsId;return object};CreateUserCredsRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CreateUserCredsRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.CreateUserCredsRequest"};return CreateUserCredsRequest}();v1.GetUserCredsRequest=function(){function GetUserCredsRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.GetUserCredsRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};GetUserCredsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GetUserCredsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};GetUserCredsRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.GetUserCredsRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.GetUserCredsRequest;if(object.name!=null)message.name=String(object.name);return message};GetUserCredsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};GetUserCredsRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GetUserCredsRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.GetUserCredsRequest"};return GetUserCredsRequest}();v1.ListUserCredsRequest=function(){function ListUserCredsRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ListUserCredsRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ListUserCredsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListUserCredsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";return null};ListUserCredsRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.ListUserCredsRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ListUserCredsRequest;if(object.parent!=null)message.parent=String(object.parent);return message};ListUserCredsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.parent="";if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;return object};ListUserCredsRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ListUserCredsRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.ListUserCredsRequest"};return ListUserCredsRequest}();v1.ListUserCredsResponse=function(){function ListUserCredsResponse(properties){this.userCreds=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ListUserCredsResponse;while(reader.pos>>3){case 1:{if(!(message.userCreds&&message.userCreds.length))message.userCreds=[];message.userCreds.push($root.google.firestore.admin.v1.UserCreds.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};ListUserCredsResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListUserCredsResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.userCreds!=null&&message.hasOwnProperty("userCreds")){if(!Array.isArray(message.userCreds))return"userCreds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ListUserCredsResponse;if(object.userCreds){if(!Array.isArray(object.userCreds))throw TypeError(".google.firestore.admin.v1.ListUserCredsResponse.userCreds: array expected");message.userCreds=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.EnableUserCredsRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};EnableUserCredsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EnableUserCredsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};EnableUserCredsRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.EnableUserCredsRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.EnableUserCredsRequest;if(object.name!=null)message.name=String(object.name);return message};EnableUserCredsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};EnableUserCredsRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};EnableUserCredsRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.EnableUserCredsRequest"};return EnableUserCredsRequest}();v1.DisableUserCredsRequest=function(){function DisableUserCredsRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.DisableUserCredsRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};DisableUserCredsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DisableUserCredsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};DisableUserCredsRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.DisableUserCredsRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.DisableUserCredsRequest;if(object.name!=null)message.name=String(object.name);return message};DisableUserCredsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};DisableUserCredsRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DisableUserCredsRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.DisableUserCredsRequest"};return DisableUserCredsRequest}();v1.ResetUserPasswordRequest=function(){function ResetUserPasswordRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ResetUserPasswordRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ResetUserPasswordRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ResetUserPasswordRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};ResetUserPasswordRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.ResetUserPasswordRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ResetUserPasswordRequest;if(object.name!=null)message.name=String(object.name);return message};ResetUserPasswordRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};ResetUserPasswordRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ResetUserPasswordRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.ResetUserPasswordRequest"};return ResetUserPasswordRequest}();v1.DeleteUserCredsRequest=function(){function DeleteUserCredsRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.DeleteUserCredsRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};DeleteUserCredsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DeleteUserCredsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};DeleteUserCredsRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.DeleteUserCredsRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.DeleteUserCredsRequest;if(object.name!=null)message.name=String(object.name);return message};DeleteUserCredsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};DeleteUserCredsRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DeleteUserCredsRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.DeleteUserCredsRequest"};return DeleteUserCredsRequest}();v1.CreateBackupScheduleRequest=function(){function CreateBackupScheduleRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.CreateBackupScheduleRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.backupSchedule=$root.google.firestore.admin.v1.BackupSchedule.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};CreateBackupScheduleRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CreateBackupScheduleRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.backupSchedule!=null&&message.hasOwnProperty("backupSchedule")){var error=$root.google.firestore.admin.v1.BackupSchedule.verify(message.backupSchedule,long+1);if(error)return"backupSchedule."+error}return null};CreateBackupScheduleRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.CreateBackupScheduleRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.CreateBackupScheduleRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.backupSchedule!=null){if(typeof object.backupSchedule!=="object")throw TypeError(".google.firestore.admin.v1.CreateBackupScheduleRequest.backupSchedule: object expected");message.backupSchedule=$root.google.firestore.admin.v1.BackupSchedule.fromObject(object.backupSchedule,long+1)}return message};CreateBackupScheduleRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.backupSchedule=null}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.backupSchedule!=null&&message.hasOwnProperty("backupSchedule"))object.backupSchedule=$root.google.firestore.admin.v1.BackupSchedule.toObject(message.backupSchedule,options);return object};CreateBackupScheduleRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CreateBackupScheduleRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.CreateBackupScheduleRequest"};return CreateBackupScheduleRequest}();v1.GetBackupScheduleRequest=function(){function GetBackupScheduleRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.GetBackupScheduleRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};GetBackupScheduleRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GetBackupScheduleRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};GetBackupScheduleRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.GetBackupScheduleRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.GetBackupScheduleRequest;if(object.name!=null)message.name=String(object.name);return message};GetBackupScheduleRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};GetBackupScheduleRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GetBackupScheduleRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.GetBackupScheduleRequest"};return GetBackupScheduleRequest}();v1.UpdateBackupScheduleRequest=function(){function UpdateBackupScheduleRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.UpdateBackupScheduleRequest;while(reader.pos>>3){case 1:{message.backupSchedule=$root.google.firestore.admin.v1.BackupSchedule.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.updateMask=$root.google.protobuf.FieldMask.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};UpdateBackupScheduleRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UpdateBackupScheduleRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.backupSchedule!=null&&message.hasOwnProperty("backupSchedule")){var error=$root.google.firestore.admin.v1.BackupSchedule.verify(message.backupSchedule,long+1);if(error)return"backupSchedule."+error}if(message.updateMask!=null&&message.hasOwnProperty("updateMask")){var error=$root.google.protobuf.FieldMask.verify(message.updateMask,long+1);if(error)return"updateMask."+error}return null};UpdateBackupScheduleRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.UpdateBackupScheduleRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.UpdateBackupScheduleRequest;if(object.backupSchedule!=null){if(typeof object.backupSchedule!=="object")throw TypeError(".google.firestore.admin.v1.UpdateBackupScheduleRequest.backupSchedule: object expected");message.backupSchedule=$root.google.firestore.admin.v1.BackupSchedule.fromObject(object.backupSchedule,long+1)}if(object.updateMask!=null){if(typeof object.updateMask!=="object")throw TypeError(".google.firestore.admin.v1.UpdateBackupScheduleRequest.updateMask: object expected");message.updateMask=$root.google.protobuf.FieldMask.fromObject(object.updateMask,long+1)}return message};UpdateBackupScheduleRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.backupSchedule=null;object.updateMask=null}if(message.backupSchedule!=null&&message.hasOwnProperty("backupSchedule"))object.backupSchedule=$root.google.firestore.admin.v1.BackupSchedule.toObject(message.backupSchedule,options);if(message.updateMask!=null&&message.hasOwnProperty("updateMask"))object.updateMask=$root.google.protobuf.FieldMask.toObject(message.updateMask,options);return object};UpdateBackupScheduleRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UpdateBackupScheduleRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.UpdateBackupScheduleRequest"};return UpdateBackupScheduleRequest}();v1.ListBackupSchedulesRequest=function(){function ListBackupSchedulesRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ListBackupSchedulesRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ListBackupSchedulesRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListBackupSchedulesRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";return null};ListBackupSchedulesRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.ListBackupSchedulesRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ListBackupSchedulesRequest;if(object.parent!=null)message.parent=String(object.parent);return message};ListBackupSchedulesRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.parent="";if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;return object};ListBackupSchedulesRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ListBackupSchedulesRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.ListBackupSchedulesRequest"};return ListBackupSchedulesRequest}();v1.ListBackupSchedulesResponse=function(){function ListBackupSchedulesResponse(properties){this.backupSchedules=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ListBackupSchedulesResponse;while(reader.pos>>3){case 1:{if(!(message.backupSchedules&&message.backupSchedules.length))message.backupSchedules=[];message.backupSchedules.push($root.google.firestore.admin.v1.BackupSchedule.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};ListBackupSchedulesResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListBackupSchedulesResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.backupSchedules!=null&&message.hasOwnProperty("backupSchedules")){if(!Array.isArray(message.backupSchedules))return"backupSchedules: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ListBackupSchedulesResponse;if(object.backupSchedules){if(!Array.isArray(object.backupSchedules))throw TypeError(".google.firestore.admin.v1.ListBackupSchedulesResponse.backupSchedules: array expected");message.backupSchedules=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.DeleteBackupScheduleRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};DeleteBackupScheduleRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DeleteBackupScheduleRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};DeleteBackupScheduleRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.DeleteBackupScheduleRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.DeleteBackupScheduleRequest;if(object.name!=null)message.name=String(object.name);return message};DeleteBackupScheduleRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};DeleteBackupScheduleRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DeleteBackupScheduleRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.DeleteBackupScheduleRequest"};return DeleteBackupScheduleRequest}();v1.CreateIndexRequest=function(){function CreateIndexRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.CreateIndexRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.index=$root.google.firestore.admin.v1.Index.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};CreateIndexRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CreateIndexRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.index!=null&&message.hasOwnProperty("index")){var error=$root.google.firestore.admin.v1.Index.verify(message.index,long+1);if(error)return"index."+error}return null};CreateIndexRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.CreateIndexRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.CreateIndexRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.index!=null){if(typeof object.index!=="object")throw TypeError(".google.firestore.admin.v1.CreateIndexRequest.index: object expected");message.index=$root.google.firestore.admin.v1.Index.fromObject(object.index,long+1)}return message};CreateIndexRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.index=null}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.index!=null&&message.hasOwnProperty("index"))object.index=$root.google.firestore.admin.v1.Index.toObject(message.index,options);return object};CreateIndexRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CreateIndexRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.CreateIndexRequest"};return CreateIndexRequest}();v1.ListIndexesRequest=function(){function ListIndexesRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ListIndexesRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.filter=reader.string();break}case 3:{message.pageSize=reader.int32();break}case 4:{message.pageToken=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ListIndexesRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListIndexesRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.filter!=null&&message.hasOwnProperty("filter"))if(!$util.isString(message.filter))return"filter: string expected";if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))if(!$util.isInteger(message.pageSize))return"pageSize: integer expected";if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))if(!$util.isString(message.pageToken))return"pageToken: string expected";return null};ListIndexesRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.ListIndexesRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ListIndexesRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.filter!=null)message.filter=String(object.filter);if(object.pageSize!=null)message.pageSize=object.pageSize|0;if(object.pageToken!=null)message.pageToken=String(object.pageToken);return message};ListIndexesRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.filter="";object.pageSize=0;object.pageToken=""}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.filter!=null&&message.hasOwnProperty("filter"))object.filter=message.filter;if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))object.pageSize=message.pageSize;if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))object.pageToken=message.pageToken;return object};ListIndexesRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ListIndexesRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.ListIndexesRequest"};return ListIndexesRequest}();v1.ListIndexesResponse=function(){function ListIndexesResponse(properties){this.indexes=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ListIndexesResponse;while(reader.pos>>3){case 1:{if(!(message.indexes&&message.indexes.length))message.indexes=[];message.indexes.push($root.google.firestore.admin.v1.Index.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.nextPageToken=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ListIndexesResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListIndexesResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.indexes!=null&&message.hasOwnProperty("indexes")){if(!Array.isArray(message.indexes))return"indexes: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ListIndexesResponse;if(object.indexes){if(!Array.isArray(object.indexes))throw TypeError(".google.firestore.admin.v1.ListIndexesResponse.indexes: array expected");message.indexes=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.GetIndexRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};GetIndexRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GetIndexRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};GetIndexRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.GetIndexRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.GetIndexRequest;if(object.name!=null)message.name=String(object.name);return message};GetIndexRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};GetIndexRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GetIndexRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.GetIndexRequest"};return GetIndexRequest}();v1.DeleteIndexRequest=function(){function DeleteIndexRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.DeleteIndexRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};DeleteIndexRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DeleteIndexRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};DeleteIndexRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.DeleteIndexRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.DeleteIndexRequest;if(object.name!=null)message.name=String(object.name);return message};DeleteIndexRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};DeleteIndexRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DeleteIndexRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.DeleteIndexRequest"};return DeleteIndexRequest}();v1.UpdateFieldRequest=function(){function UpdateFieldRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.UpdateFieldRequest;while(reader.pos>>3){case 1:{message.field=$root.google.firestore.admin.v1.Field.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.updateMask=$root.google.protobuf.FieldMask.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};UpdateFieldRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UpdateFieldRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.field!=null&&message.hasOwnProperty("field")){var error=$root.google.firestore.admin.v1.Field.verify(message.field,long+1);if(error)return"field."+error}if(message.updateMask!=null&&message.hasOwnProperty("updateMask")){var error=$root.google.protobuf.FieldMask.verify(message.updateMask,long+1);if(error)return"updateMask."+error}return null};UpdateFieldRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.UpdateFieldRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.UpdateFieldRequest;if(object.field!=null){if(typeof object.field!=="object")throw TypeError(".google.firestore.admin.v1.UpdateFieldRequest.field: object expected");message.field=$root.google.firestore.admin.v1.Field.fromObject(object.field,long+1)}if(object.updateMask!=null){if(typeof object.updateMask!=="object")throw TypeError(".google.firestore.admin.v1.UpdateFieldRequest.updateMask: object expected");message.updateMask=$root.google.protobuf.FieldMask.fromObject(object.updateMask,long+1)}return message};UpdateFieldRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.field=null;object.updateMask=null}if(message.field!=null&&message.hasOwnProperty("field"))object.field=$root.google.firestore.admin.v1.Field.toObject(message.field,options);if(message.updateMask!=null&&message.hasOwnProperty("updateMask"))object.updateMask=$root.google.protobuf.FieldMask.toObject(message.updateMask,options);return object};UpdateFieldRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UpdateFieldRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.UpdateFieldRequest"};return UpdateFieldRequest}();v1.GetFieldRequest=function(){function GetFieldRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.GetFieldRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};GetFieldRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GetFieldRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};GetFieldRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.GetFieldRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.GetFieldRequest;if(object.name!=null)message.name=String(object.name);return message};GetFieldRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};GetFieldRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GetFieldRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.GetFieldRequest"};return GetFieldRequest}();v1.ListFieldsRequest=function(){function ListFieldsRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ListFieldsRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.filter=reader.string();break}case 3:{message.pageSize=reader.int32();break}case 4:{message.pageToken=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ListFieldsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListFieldsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.filter!=null&&message.hasOwnProperty("filter"))if(!$util.isString(message.filter))return"filter: string expected";if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))if(!$util.isInteger(message.pageSize))return"pageSize: integer expected";if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))if(!$util.isString(message.pageToken))return"pageToken: string expected";return null};ListFieldsRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.ListFieldsRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ListFieldsRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.filter!=null)message.filter=String(object.filter);if(object.pageSize!=null)message.pageSize=object.pageSize|0;if(object.pageToken!=null)message.pageToken=String(object.pageToken);return message};ListFieldsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.filter="";object.pageSize=0;object.pageToken=""}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.filter!=null&&message.hasOwnProperty("filter"))object.filter=message.filter;if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))object.pageSize=message.pageSize;if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))object.pageToken=message.pageToken;return object};ListFieldsRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ListFieldsRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.ListFieldsRequest"};return ListFieldsRequest}();v1.ListFieldsResponse=function(){function ListFieldsResponse(properties){this.fields=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ListFieldsResponse;while(reader.pos>>3){case 1:{if(!(message.fields&&message.fields.length))message.fields=[];message.fields.push($root.google.firestore.admin.v1.Field.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.nextPageToken=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ListFieldsResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListFieldsResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.fields!=null&&message.hasOwnProperty("fields")){if(!Array.isArray(message.fields))return"fields: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ListFieldsResponse;if(object.fields){if(!Array.isArray(object.fields))throw TypeError(".google.firestore.admin.v1.ListFieldsResponse.fields: array expected");message.fields=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ExportDocumentsRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{if(!(message.collectionIds&&message.collectionIds.length))message.collectionIds=[];message.collectionIds.push(reader.string());break}case 3:{message.outputUriPrefix=reader.string();break}case 4:{if(!(message.namespaceIds&&message.namespaceIds.length))message.namespaceIds=[];message.namespaceIds.push(reader.string());break}case 5:{message.snapshotTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ExportDocumentsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExportDocumentsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.collectionIds!=null&&message.hasOwnProperty("collectionIds")){if(!Array.isArray(message.collectionIds))return"collectionIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ExportDocumentsRequest;if(object.name!=null)message.name=String(object.name);if(object.collectionIds){if(!Array.isArray(object.collectionIds))throw TypeError(".google.firestore.admin.v1.ExportDocumentsRequest.collectionIds: array expected");message.collectionIds=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ImportDocumentsRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{if(!(message.collectionIds&&message.collectionIds.length))message.collectionIds=[];message.collectionIds.push(reader.string());break}case 3:{message.inputUriPrefix=reader.string();break}case 4:{if(!(message.namespaceIds&&message.namespaceIds.length))message.namespaceIds=[];message.namespaceIds.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};ImportDocumentsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ImportDocumentsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.collectionIds!=null&&message.hasOwnProperty("collectionIds")){if(!Array.isArray(message.collectionIds))return"collectionIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ImportDocumentsRequest;if(object.name!=null)message.name=String(object.name);if(object.collectionIds){if(!Array.isArray(object.collectionIds))throw TypeError(".google.firestore.admin.v1.ImportDocumentsRequest.collectionIds: array expected");message.collectionIds=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.BulkDeleteDocumentsRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{if(!(message.collectionIds&&message.collectionIds.length))message.collectionIds=[];message.collectionIds.push(reader.string());break}case 3:{if(!(message.namespaceIds&&message.namespaceIds.length))message.namespaceIds=[];message.namespaceIds.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};BulkDeleteDocumentsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BulkDeleteDocumentsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.collectionIds!=null&&message.hasOwnProperty("collectionIds")){if(!Array.isArray(message.collectionIds))return"collectionIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.BulkDeleteDocumentsRequest;if(object.name!=null)message.name=String(object.name);if(object.collectionIds){if(!Array.isArray(object.collectionIds))throw TypeError(".google.firestore.admin.v1.BulkDeleteDocumentsRequest.collectionIds: array expected");message.collectionIds=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.BulkDeleteDocumentsResponse;while(reader.pos>>3){default:reader.skipType(tag&7,long);break}}return message};BulkDeleteDocumentsResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BulkDeleteDocumentsResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};BulkDeleteDocumentsResponse.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.BulkDeleteDocumentsResponse)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.firestore.admin.v1.BulkDeleteDocumentsResponse};BulkDeleteDocumentsResponse.toObject=function toObject(){return{}};BulkDeleteDocumentsResponse.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BulkDeleteDocumentsResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.BulkDeleteDocumentsResponse"};return BulkDeleteDocumentsResponse}();v1.GetBackupRequest=function(){function GetBackupRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.GetBackupRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};GetBackupRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GetBackupRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};GetBackupRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.GetBackupRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.GetBackupRequest;if(object.name!=null)message.name=String(object.name);return message};GetBackupRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};GetBackupRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GetBackupRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.GetBackupRequest"};return GetBackupRequest}();v1.ListBackupsRequest=function(){function ListBackupsRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ListBackupsRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.filter=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ListBackupsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListBackupsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.filter!=null&&message.hasOwnProperty("filter"))if(!$util.isString(message.filter))return"filter: string expected";return null};ListBackupsRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.ListBackupsRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ListBackupsRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.filter!=null)message.filter=String(object.filter);return message};ListBackupsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.filter=""}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.filter!=null&&message.hasOwnProperty("filter"))object.filter=message.filter;return object};ListBackupsRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ListBackupsRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.ListBackupsRequest"};return ListBackupsRequest}();v1.ListBackupsResponse=function(){function ListBackupsResponse(properties){this.backups=[];this.unreachable=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ListBackupsResponse;while(reader.pos>>3){case 1:{if(!(message.backups&&message.backups.length))message.backups=[];message.backups.push($root.google.firestore.admin.v1.Backup.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{if(!(message.unreachable&&message.unreachable.length))message.unreachable=[];message.unreachable.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};ListBackupsResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListBackupsResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.backups!=null&&message.hasOwnProperty("backups")){if(!Array.isArray(message.backups))return"backups: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ListBackupsResponse;if(object.backups){if(!Array.isArray(object.backups))throw TypeError(".google.firestore.admin.v1.ListBackupsResponse.backups: array expected");message.backups=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.DeleteBackupRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};DeleteBackupRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DeleteBackupRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};DeleteBackupRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.DeleteBackupRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.DeleteBackupRequest;if(object.name!=null)message.name=String(object.name);return message};DeleteBackupRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};DeleteBackupRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DeleteBackupRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.DeleteBackupRequest"};return DeleteBackupRequest}();v1.RestoreDatabaseRequest=function(){function RestoreDatabaseRequest(properties){this.tags={};if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.RestoreDatabaseRequest,key,value;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.databaseId=reader.string();break}case 3:{message.backup=reader.string();break}case 9:{message.encryptionConfig=$root.google.firestore.admin.v1.Database.EncryptionConfig.decode(reader,reader.uint32(),undefined,long+1);break}case 10:{if(message.tags===$util.emptyObject)message.tags={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.tags,key);message.tags[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};RestoreDatabaseRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RestoreDatabaseRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.databaseId!=null&&message.hasOwnProperty("databaseId"))if(!$util.isString(message.databaseId))return"databaseId: string expected";if(message.backup!=null&&message.hasOwnProperty("backup"))if(!$util.isString(message.backup))return"backup: string expected";if(message.encryptionConfig!=null&&message.hasOwnProperty("encryptionConfig")){var error=$root.google.firestore.admin.v1.Database.EncryptionConfig.verify(message.encryptionConfig,long+1);if(error)return"encryptionConfig."+error}if(message.tags!=null&&message.hasOwnProperty("tags")){if(!$util.isObject(message.tags))return"tags: object expected";var key=Object.keys(message.tags);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.RestoreDatabaseRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.databaseId!=null)message.databaseId=String(object.databaseId);if(object.backup!=null)message.backup=String(object.backup);if(object.encryptionConfig!=null){if(typeof object.encryptionConfig!=="object")throw TypeError(".google.firestore.admin.v1.RestoreDatabaseRequest.encryptionConfig: object expected");message.encryptionConfig=$root.google.firestore.admin.v1.Database.EncryptionConfig.fromObject(object.encryptionConfig,long+1)}if(object.tags){if(typeof object.tags!=="object")throw TypeError(".google.firestore.admin.v1.RestoreDatabaseRequest.tags: object expected");message.tags={};for(var keys=Object.keys(object.tags),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.CloneDatabaseRequest,key,value;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.databaseId=reader.string();break}case 6:{message.pitrSnapshot=$root.google.firestore.admin.v1.PitrSnapshot.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.encryptionConfig=$root.google.firestore.admin.v1.Database.EncryptionConfig.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{if(message.tags===$util.emptyObject)message.tags={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.tags,key);message.tags[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};CloneDatabaseRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CloneDatabaseRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.databaseId!=null&&message.hasOwnProperty("databaseId"))if(!$util.isString(message.databaseId))return"databaseId: string expected";if(message.pitrSnapshot!=null&&message.hasOwnProperty("pitrSnapshot")){var error=$root.google.firestore.admin.v1.PitrSnapshot.verify(message.pitrSnapshot,long+1);if(error)return"pitrSnapshot."+error}if(message.encryptionConfig!=null&&message.hasOwnProperty("encryptionConfig")){var error=$root.google.firestore.admin.v1.Database.EncryptionConfig.verify(message.encryptionConfig,long+1);if(error)return"encryptionConfig."+error}if(message.tags!=null&&message.hasOwnProperty("tags")){if(!$util.isObject(message.tags))return"tags: object expected";var key=Object.keys(message.tags);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.CloneDatabaseRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.databaseId!=null)message.databaseId=String(object.databaseId);if(object.pitrSnapshot!=null){if(typeof object.pitrSnapshot!=="object")throw TypeError(".google.firestore.admin.v1.CloneDatabaseRequest.pitrSnapshot: object expected");message.pitrSnapshot=$root.google.firestore.admin.v1.PitrSnapshot.fromObject(object.pitrSnapshot,long+1)}if(object.encryptionConfig!=null){if(typeof object.encryptionConfig!=="object")throw TypeError(".google.firestore.admin.v1.CloneDatabaseRequest.encryptionConfig: object expected");message.encryptionConfig=$root.google.firestore.admin.v1.Database.EncryptionConfig.fromObject(object.encryptionConfig,long+1)}if(object.tags){if(typeof object.tags!=="object")throw TypeError(".google.firestore.admin.v1.CloneDatabaseRequest.tags: object expected");message.tags={};for(var keys=Object.keys(object.tags),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.IndexOperationMetadata;while(reader.pos>>3){case 1:{message.startTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.endTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.index=reader.string();break}case 4:{message.state=reader.int32();break}case 5:{message.progressDocuments=$root.google.firestore.admin.v1.Progress.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.progressBytes=$root.google.firestore.admin.v1.Progress.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};IndexOperationMetadata.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};IndexOperationMetadata.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.startTime!=null&&message.hasOwnProperty("startTime")){var error=$root.google.protobuf.Timestamp.verify(message.startTime,long+1);if(error)return"startTime."+error}if(message.endTime!=null&&message.hasOwnProperty("endTime")){var error=$root.google.protobuf.Timestamp.verify(message.endTime,long+1);if(error)return"endTime."+error}if(message.index!=null&&message.hasOwnProperty("index"))if(!$util.isString(message.index))return"index: string expected";if(message.state!=null&&message.hasOwnProperty("state"))switch(message.state){default:return"state: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:break}if(message.progressDocuments!=null&&message.hasOwnProperty("progressDocuments")){var error=$root.google.firestore.admin.v1.Progress.verify(message.progressDocuments,long+1);if(error)return"progressDocuments."+error}if(message.progressBytes!=null&&message.hasOwnProperty("progressBytes")){var error=$root.google.firestore.admin.v1.Progress.verify(message.progressBytes,long+1);if(error)return"progressBytes."+error}return null};IndexOperationMetadata.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.IndexOperationMetadata)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.IndexOperationMetadata;if(object.startTime!=null){if(typeof object.startTime!=="object")throw TypeError(".google.firestore.admin.v1.IndexOperationMetadata.startTime: object expected");message.startTime=$root.google.protobuf.Timestamp.fromObject(object.startTime,long+1)}if(object.endTime!=null){if(typeof object.endTime!=="object")throw TypeError(".google.firestore.admin.v1.IndexOperationMetadata.endTime: object expected");message.endTime=$root.google.protobuf.Timestamp.fromObject(object.endTime,long+1)}if(object.index!=null)message.index=String(object.index);switch(object.state){default:if(typeof object.state==="number"){message.state=object.state;break}break;case"OPERATION_STATE_UNSPECIFIED":case 0:message.state=0;break;case"INITIALIZING":case 1:message.state=1;break;case"PROCESSING":case 2:message.state=2;break;case"CANCELLING":case 3:message.state=3;break;case"FINALIZING":case 4:message.state=4;break;case"SUCCESSFUL":case 5:message.state=5;break;case"FAILED":case 6:message.state=6;break;case"CANCELLED":case 7:message.state=7;break}if(object.progressDocuments!=null){if(typeof object.progressDocuments!=="object")throw TypeError(".google.firestore.admin.v1.IndexOperationMetadata.progressDocuments: object expected");message.progressDocuments=$root.google.firestore.admin.v1.Progress.fromObject(object.progressDocuments,long+1)}if(object.progressBytes!=null){if(typeof object.progressBytes!=="object")throw TypeError(".google.firestore.admin.v1.IndexOperationMetadata.progressBytes: object expected");message.progressBytes=$root.google.firestore.admin.v1.Progress.fromObject(object.progressBytes,long+1)}return message};IndexOperationMetadata.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.startTime=null;object.endTime=null;object.index="";object.state=options.enums===String?"OPERATION_STATE_UNSPECIFIED":0;object.progressDocuments=null;object.progressBytes=null}if(message.startTime!=null&&message.hasOwnProperty("startTime"))object.startTime=$root.google.protobuf.Timestamp.toObject(message.startTime,options);if(message.endTime!=null&&message.hasOwnProperty("endTime"))object.endTime=$root.google.protobuf.Timestamp.toObject(message.endTime,options);if(message.index!=null&&message.hasOwnProperty("index"))object.index=message.index;if(message.state!=null&&message.hasOwnProperty("state"))object.state=options.enums===String?$root.google.firestore.admin.v1.OperationState[message.state]===undefined?message.state:$root.google.firestore.admin.v1.OperationState[message.state]:message.state;if(message.progressDocuments!=null&&message.hasOwnProperty("progressDocuments"))object.progressDocuments=$root.google.firestore.admin.v1.Progress.toObject(message.progressDocuments,options);if(message.progressBytes!=null&&message.hasOwnProperty("progressBytes"))object.progressBytes=$root.google.firestore.admin.v1.Progress.toObject(message.progressBytes,options);return object};IndexOperationMetadata.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};IndexOperationMetadata.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.IndexOperationMetadata"};return IndexOperationMetadata}();v1.FieldOperationMetadata=function(){function FieldOperationMetadata(properties){this.indexConfigDeltas=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.FieldOperationMetadata;while(reader.pos>>3){case 1:{message.startTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.endTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.field=reader.string();break}case 4:{if(!(message.indexConfigDeltas&&message.indexConfigDeltas.length))message.indexConfigDeltas=[];message.indexConfigDeltas.push($root.google.firestore.admin.v1.FieldOperationMetadata.IndexConfigDelta.decode(reader,reader.uint32(),undefined,long+1));break}case 5:{message.state=reader.int32();break}case 6:{message.progressDocuments=$root.google.firestore.admin.v1.Progress.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.progressBytes=$root.google.firestore.admin.v1.Progress.decode(reader,reader.uint32(),undefined,long+1);break}case 8:{message.ttlConfigDelta=$root.google.firestore.admin.v1.FieldOperationMetadata.TtlConfigDelta.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};FieldOperationMetadata.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FieldOperationMetadata.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.startTime!=null&&message.hasOwnProperty("startTime")){var error=$root.google.protobuf.Timestamp.verify(message.startTime,long+1);if(error)return"startTime."+error}if(message.endTime!=null&&message.hasOwnProperty("endTime")){var error=$root.google.protobuf.Timestamp.verify(message.endTime,long+1);if(error)return"endTime."+error}if(message.field!=null&&message.hasOwnProperty("field"))if(!$util.isString(message.field))return"field: string expected";if(message.indexConfigDeltas!=null&&message.hasOwnProperty("indexConfigDeltas")){if(!Array.isArray(message.indexConfigDeltas))return"indexConfigDeltas: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.FieldOperationMetadata;if(object.startTime!=null){if(typeof object.startTime!=="object")throw TypeError(".google.firestore.admin.v1.FieldOperationMetadata.startTime: object expected");message.startTime=$root.google.protobuf.Timestamp.fromObject(object.startTime,long+1)}if(object.endTime!=null){if(typeof object.endTime!=="object")throw TypeError(".google.firestore.admin.v1.FieldOperationMetadata.endTime: object expected");message.endTime=$root.google.protobuf.Timestamp.fromObject(object.endTime,long+1)}if(object.field!=null)message.field=String(object.field);if(object.indexConfigDeltas){if(!Array.isArray(object.indexConfigDeltas))throw TypeError(".google.firestore.admin.v1.FieldOperationMetadata.indexConfigDeltas: array expected");message.indexConfigDeltas=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.FieldOperationMetadata.IndexConfigDelta;while(reader.pos>>3){case 1:{message.changeType=reader.int32();break}case 2:{message.index=$root.google.firestore.admin.v1.Index.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};IndexConfigDelta.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};IndexConfigDelta.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.changeType!=null&&message.hasOwnProperty("changeType"))switch(message.changeType){default:return"changeType: enum value expected";case 0:case 1:case 2:break}if(message.index!=null&&message.hasOwnProperty("index")){var error=$root.google.firestore.admin.v1.Index.verify(message.index,long+1);if(error)return"index."+error}return null};IndexConfigDelta.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.FieldOperationMetadata.IndexConfigDelta)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.FieldOperationMetadata.IndexConfigDelta;switch(object.changeType){default:if(typeof object.changeType==="number"){message.changeType=object.changeType;break}break;case"CHANGE_TYPE_UNSPECIFIED":case 0:message.changeType=0;break;case"ADD":case 1:message.changeType=1;break;case"REMOVE":case 2:message.changeType=2;break}if(object.index!=null){if(typeof object.index!=="object")throw TypeError(".google.firestore.admin.v1.FieldOperationMetadata.IndexConfigDelta.index: object expected");message.index=$root.google.firestore.admin.v1.Index.fromObject(object.index,long+1)}return message};IndexConfigDelta.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.changeType=options.enums===String?"CHANGE_TYPE_UNSPECIFIED":0;object.index=null}if(message.changeType!=null&&message.hasOwnProperty("changeType"))object.changeType=options.enums===String?$root.google.firestore.admin.v1.FieldOperationMetadata.IndexConfigDelta.ChangeType[message.changeType]===undefined?message.changeType:$root.google.firestore.admin.v1.FieldOperationMetadata.IndexConfigDelta.ChangeType[message.changeType]:message.changeType;if(message.index!=null&&message.hasOwnProperty("index"))object.index=$root.google.firestore.admin.v1.Index.toObject(message.index,options);return object};IndexConfigDelta.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};IndexConfigDelta.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.FieldOperationMetadata.IndexConfigDelta"};IndexConfigDelta.ChangeType=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="CHANGE_TYPE_UNSPECIFIED"]=0;values[valuesById[1]="ADD"]=1;values[valuesById[2]="REMOVE"]=2;return values}();return IndexConfigDelta}();FieldOperationMetadata.TtlConfigDelta=function(){function TtlConfigDelta(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.FieldOperationMetadata.TtlConfigDelta;while(reader.pos>>3){case 1:{message.changeType=reader.int32();break}case 3:{message.expirationOffset=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};TtlConfigDelta.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};TtlConfigDelta.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.changeType!=null&&message.hasOwnProperty("changeType"))switch(message.changeType){default:return"changeType: enum value expected";case 0:case 1:case 2:break}if(message.expirationOffset!=null&&message.hasOwnProperty("expirationOffset")){var error=$root.google.protobuf.Duration.verify(message.expirationOffset,long+1);if(error)return"expirationOffset."+error}return null};TtlConfigDelta.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.FieldOperationMetadata.TtlConfigDelta)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.FieldOperationMetadata.TtlConfigDelta;switch(object.changeType){default:if(typeof object.changeType==="number"){message.changeType=object.changeType;break}break;case"CHANGE_TYPE_UNSPECIFIED":case 0:message.changeType=0;break;case"ADD":case 1:message.changeType=1;break;case"REMOVE":case 2:message.changeType=2;break}if(object.expirationOffset!=null){if(typeof object.expirationOffset!=="object")throw TypeError(".google.firestore.admin.v1.FieldOperationMetadata.TtlConfigDelta.expirationOffset: object expected");message.expirationOffset=$root.google.protobuf.Duration.fromObject(object.expirationOffset,long+1)}return message};TtlConfigDelta.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.changeType=options.enums===String?"CHANGE_TYPE_UNSPECIFIED":0;object.expirationOffset=null}if(message.changeType!=null&&message.hasOwnProperty("changeType"))object.changeType=options.enums===String?$root.google.firestore.admin.v1.FieldOperationMetadata.TtlConfigDelta.ChangeType[message.changeType]===undefined?message.changeType:$root.google.firestore.admin.v1.FieldOperationMetadata.TtlConfigDelta.ChangeType[message.changeType]:message.changeType;if(message.expirationOffset!=null&&message.hasOwnProperty("expirationOffset"))object.expirationOffset=$root.google.protobuf.Duration.toObject(message.expirationOffset,options);return object};TtlConfigDelta.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};TtlConfigDelta.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.FieldOperationMetadata.TtlConfigDelta"};TtlConfigDelta.ChangeType=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="CHANGE_TYPE_UNSPECIFIED"]=0;values[valuesById[1]="ADD"]=1;values[valuesById[2]="REMOVE"]=2;return values}();return TtlConfigDelta}();return FieldOperationMetadata}();v1.ExportDocumentsMetadata=function(){function ExportDocumentsMetadata(properties){this.collectionIds=[];this.namespaceIds=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ExportDocumentsMetadata;while(reader.pos>>3){case 1:{message.startTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.endTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.operationState=reader.int32();break}case 4:{message.progressDocuments=$root.google.firestore.admin.v1.Progress.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.progressBytes=$root.google.firestore.admin.v1.Progress.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{if(!(message.collectionIds&&message.collectionIds.length))message.collectionIds=[];message.collectionIds.push(reader.string());break}case 7:{message.outputUriPrefix=reader.string();break}case 8:{if(!(message.namespaceIds&&message.namespaceIds.length))message.namespaceIds=[];message.namespaceIds.push(reader.string());break}case 9:{message.snapshotTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ExportDocumentsMetadata.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExportDocumentsMetadata.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.startTime!=null&&message.hasOwnProperty("startTime")){var error=$root.google.protobuf.Timestamp.verify(message.startTime,long+1);if(error)return"startTime."+error}if(message.endTime!=null&&message.hasOwnProperty("endTime")){var error=$root.google.protobuf.Timestamp.verify(message.endTime,long+1);if(error)return"endTime."+error}if(message.operationState!=null&&message.hasOwnProperty("operationState"))switch(message.operationState){default:return"operationState: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:break}if(message.progressDocuments!=null&&message.hasOwnProperty("progressDocuments")){var error=$root.google.firestore.admin.v1.Progress.verify(message.progressDocuments,long+1);if(error)return"progressDocuments."+error}if(message.progressBytes!=null&&message.hasOwnProperty("progressBytes")){var error=$root.google.firestore.admin.v1.Progress.verify(message.progressBytes,long+1);if(error)return"progressBytes."+error}if(message.collectionIds!=null&&message.hasOwnProperty("collectionIds")){if(!Array.isArray(message.collectionIds))return"collectionIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ExportDocumentsMetadata;if(object.startTime!=null){if(typeof object.startTime!=="object")throw TypeError(".google.firestore.admin.v1.ExportDocumentsMetadata.startTime: object expected");message.startTime=$root.google.protobuf.Timestamp.fromObject(object.startTime,long+1)}if(object.endTime!=null){if(typeof object.endTime!=="object")throw TypeError(".google.firestore.admin.v1.ExportDocumentsMetadata.endTime: object expected");message.endTime=$root.google.protobuf.Timestamp.fromObject(object.endTime,long+1)}switch(object.operationState){default:if(typeof object.operationState==="number"){message.operationState=object.operationState;break}break;case"OPERATION_STATE_UNSPECIFIED":case 0:message.operationState=0;break;case"INITIALIZING":case 1:message.operationState=1;break;case"PROCESSING":case 2:message.operationState=2;break;case"CANCELLING":case 3:message.operationState=3;break;case"FINALIZING":case 4:message.operationState=4;break;case"SUCCESSFUL":case 5:message.operationState=5;break;case"FAILED":case 6:message.operationState=6;break;case"CANCELLED":case 7:message.operationState=7;break}if(object.progressDocuments!=null){if(typeof object.progressDocuments!=="object")throw TypeError(".google.firestore.admin.v1.ExportDocumentsMetadata.progressDocuments: object expected");message.progressDocuments=$root.google.firestore.admin.v1.Progress.fromObject(object.progressDocuments,long+1)}if(object.progressBytes!=null){if(typeof object.progressBytes!=="object")throw TypeError(".google.firestore.admin.v1.ExportDocumentsMetadata.progressBytes: object expected");message.progressBytes=$root.google.firestore.admin.v1.Progress.fromObject(object.progressBytes,long+1)}if(object.collectionIds){if(!Array.isArray(object.collectionIds))throw TypeError(".google.firestore.admin.v1.ExportDocumentsMetadata.collectionIds: array expected");message.collectionIds=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ImportDocumentsMetadata;while(reader.pos>>3){case 1:{message.startTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.endTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.operationState=reader.int32();break}case 4:{message.progressDocuments=$root.google.firestore.admin.v1.Progress.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.progressBytes=$root.google.firestore.admin.v1.Progress.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{if(!(message.collectionIds&&message.collectionIds.length))message.collectionIds=[];message.collectionIds.push(reader.string());break}case 7:{message.inputUriPrefix=reader.string();break}case 8:{if(!(message.namespaceIds&&message.namespaceIds.length))message.namespaceIds=[];message.namespaceIds.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};ImportDocumentsMetadata.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ImportDocumentsMetadata.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.startTime!=null&&message.hasOwnProperty("startTime")){var error=$root.google.protobuf.Timestamp.verify(message.startTime,long+1);if(error)return"startTime."+error}if(message.endTime!=null&&message.hasOwnProperty("endTime")){var error=$root.google.protobuf.Timestamp.verify(message.endTime,long+1);if(error)return"endTime."+error}if(message.operationState!=null&&message.hasOwnProperty("operationState"))switch(message.operationState){default:return"operationState: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:break}if(message.progressDocuments!=null&&message.hasOwnProperty("progressDocuments")){var error=$root.google.firestore.admin.v1.Progress.verify(message.progressDocuments,long+1);if(error)return"progressDocuments."+error}if(message.progressBytes!=null&&message.hasOwnProperty("progressBytes")){var error=$root.google.firestore.admin.v1.Progress.verify(message.progressBytes,long+1);if(error)return"progressBytes."+error}if(message.collectionIds!=null&&message.hasOwnProperty("collectionIds")){if(!Array.isArray(message.collectionIds))return"collectionIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ImportDocumentsMetadata;if(object.startTime!=null){if(typeof object.startTime!=="object")throw TypeError(".google.firestore.admin.v1.ImportDocumentsMetadata.startTime: object expected");message.startTime=$root.google.protobuf.Timestamp.fromObject(object.startTime,long+1)}if(object.endTime!=null){if(typeof object.endTime!=="object")throw TypeError(".google.firestore.admin.v1.ImportDocumentsMetadata.endTime: object expected");message.endTime=$root.google.protobuf.Timestamp.fromObject(object.endTime,long+1)}switch(object.operationState){default:if(typeof object.operationState==="number"){message.operationState=object.operationState;break}break;case"OPERATION_STATE_UNSPECIFIED":case 0:message.operationState=0;break;case"INITIALIZING":case 1:message.operationState=1;break;case"PROCESSING":case 2:message.operationState=2;break;case"CANCELLING":case 3:message.operationState=3;break;case"FINALIZING":case 4:message.operationState=4;break;case"SUCCESSFUL":case 5:message.operationState=5;break;case"FAILED":case 6:message.operationState=6;break;case"CANCELLED":case 7:message.operationState=7;break}if(object.progressDocuments!=null){if(typeof object.progressDocuments!=="object")throw TypeError(".google.firestore.admin.v1.ImportDocumentsMetadata.progressDocuments: object expected");message.progressDocuments=$root.google.firestore.admin.v1.Progress.fromObject(object.progressDocuments,long+1)}if(object.progressBytes!=null){if(typeof object.progressBytes!=="object")throw TypeError(".google.firestore.admin.v1.ImportDocumentsMetadata.progressBytes: object expected");message.progressBytes=$root.google.firestore.admin.v1.Progress.fromObject(object.progressBytes,long+1)}if(object.collectionIds){if(!Array.isArray(object.collectionIds))throw TypeError(".google.firestore.admin.v1.ImportDocumentsMetadata.collectionIds: array expected");message.collectionIds=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.BulkDeleteDocumentsMetadata;while(reader.pos>>3){case 1:{message.startTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.endTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.operationState=reader.int32();break}case 4:{message.progressDocuments=$root.google.firestore.admin.v1.Progress.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.progressBytes=$root.google.firestore.admin.v1.Progress.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{if(!(message.collectionIds&&message.collectionIds.length))message.collectionIds=[];message.collectionIds.push(reader.string());break}case 7:{if(!(message.namespaceIds&&message.namespaceIds.length))message.namespaceIds=[];message.namespaceIds.push(reader.string());break}case 8:{message.snapshotTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};BulkDeleteDocumentsMetadata.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BulkDeleteDocumentsMetadata.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.startTime!=null&&message.hasOwnProperty("startTime")){var error=$root.google.protobuf.Timestamp.verify(message.startTime,long+1);if(error)return"startTime."+error}if(message.endTime!=null&&message.hasOwnProperty("endTime")){var error=$root.google.protobuf.Timestamp.verify(message.endTime,long+1);if(error)return"endTime."+error}if(message.operationState!=null&&message.hasOwnProperty("operationState"))switch(message.operationState){default:return"operationState: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:break}if(message.progressDocuments!=null&&message.hasOwnProperty("progressDocuments")){var error=$root.google.firestore.admin.v1.Progress.verify(message.progressDocuments,long+1);if(error)return"progressDocuments."+error}if(message.progressBytes!=null&&message.hasOwnProperty("progressBytes")){var error=$root.google.firestore.admin.v1.Progress.verify(message.progressBytes,long+1);if(error)return"progressBytes."+error}if(message.collectionIds!=null&&message.hasOwnProperty("collectionIds")){if(!Array.isArray(message.collectionIds))return"collectionIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.BulkDeleteDocumentsMetadata;if(object.startTime!=null){if(typeof object.startTime!=="object")throw TypeError(".google.firestore.admin.v1.BulkDeleteDocumentsMetadata.startTime: object expected");message.startTime=$root.google.protobuf.Timestamp.fromObject(object.startTime,long+1)}if(object.endTime!=null){if(typeof object.endTime!=="object")throw TypeError(".google.firestore.admin.v1.BulkDeleteDocumentsMetadata.endTime: object expected");message.endTime=$root.google.protobuf.Timestamp.fromObject(object.endTime,long+1)}switch(object.operationState){default:if(typeof object.operationState==="number"){message.operationState=object.operationState;break}break;case"OPERATION_STATE_UNSPECIFIED":case 0:message.operationState=0;break;case"INITIALIZING":case 1:message.operationState=1;break;case"PROCESSING":case 2:message.operationState=2;break;case"CANCELLING":case 3:message.operationState=3;break;case"FINALIZING":case 4:message.operationState=4;break;case"SUCCESSFUL":case 5:message.operationState=5;break;case"FAILED":case 6:message.operationState=6;break;case"CANCELLED":case 7:message.operationState=7;break}if(object.progressDocuments!=null){if(typeof object.progressDocuments!=="object")throw TypeError(".google.firestore.admin.v1.BulkDeleteDocumentsMetadata.progressDocuments: object expected");message.progressDocuments=$root.google.firestore.admin.v1.Progress.fromObject(object.progressDocuments,long+1)}if(object.progressBytes!=null){if(typeof object.progressBytes!=="object")throw TypeError(".google.firestore.admin.v1.BulkDeleteDocumentsMetadata.progressBytes: object expected");message.progressBytes=$root.google.firestore.admin.v1.Progress.fromObject(object.progressBytes,long+1)}if(object.collectionIds){if(!Array.isArray(object.collectionIds))throw TypeError(".google.firestore.admin.v1.BulkDeleteDocumentsMetadata.collectionIds: array expected");message.collectionIds=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.ExportDocumentsResponse;while(reader.pos>>3){case 1:{message.outputUriPrefix=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ExportDocumentsResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExportDocumentsResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.outputUriPrefix!=null&&message.hasOwnProperty("outputUriPrefix"))if(!$util.isString(message.outputUriPrefix))return"outputUriPrefix: string expected";return null};ExportDocumentsResponse.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.ExportDocumentsResponse)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.ExportDocumentsResponse;if(object.outputUriPrefix!=null)message.outputUriPrefix=String(object.outputUriPrefix);return message};ExportDocumentsResponse.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.outputUriPrefix="";if(message.outputUriPrefix!=null&&message.hasOwnProperty("outputUriPrefix"))object.outputUriPrefix=message.outputUriPrefix;return object};ExportDocumentsResponse.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ExportDocumentsResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.ExportDocumentsResponse"};return ExportDocumentsResponse}();v1.RestoreDatabaseMetadata=function(){function RestoreDatabaseMetadata(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.RestoreDatabaseMetadata;while(reader.pos>>3){case 1:{message.startTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.endTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.operationState=reader.int32();break}case 4:{message.database=reader.string();break}case 5:{message.backup=reader.string();break}case 8:{message.progressPercentage=$root.google.firestore.admin.v1.Progress.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RestoreDatabaseMetadata.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RestoreDatabaseMetadata.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.startTime!=null&&message.hasOwnProperty("startTime")){var error=$root.google.protobuf.Timestamp.verify(message.startTime,long+1);if(error)return"startTime."+error}if(message.endTime!=null&&message.hasOwnProperty("endTime")){var error=$root.google.protobuf.Timestamp.verify(message.endTime,long+1);if(error)return"endTime."+error}if(message.operationState!=null&&message.hasOwnProperty("operationState"))switch(message.operationState){default:return"operationState: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:break}if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.backup!=null&&message.hasOwnProperty("backup"))if(!$util.isString(message.backup))return"backup: string expected";if(message.progressPercentage!=null&&message.hasOwnProperty("progressPercentage")){var error=$root.google.firestore.admin.v1.Progress.verify(message.progressPercentage,long+1);if(error)return"progressPercentage."+error}return null};RestoreDatabaseMetadata.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.RestoreDatabaseMetadata)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.RestoreDatabaseMetadata;if(object.startTime!=null){if(typeof object.startTime!=="object")throw TypeError(".google.firestore.admin.v1.RestoreDatabaseMetadata.startTime: object expected");message.startTime=$root.google.protobuf.Timestamp.fromObject(object.startTime,long+1)}if(object.endTime!=null){if(typeof object.endTime!=="object")throw TypeError(".google.firestore.admin.v1.RestoreDatabaseMetadata.endTime: object expected");message.endTime=$root.google.protobuf.Timestamp.fromObject(object.endTime,long+1)}switch(object.operationState){default:if(typeof object.operationState==="number"){message.operationState=object.operationState;break}break;case"OPERATION_STATE_UNSPECIFIED":case 0:message.operationState=0;break;case"INITIALIZING":case 1:message.operationState=1;break;case"PROCESSING":case 2:message.operationState=2;break;case"CANCELLING":case 3:message.operationState=3;break;case"FINALIZING":case 4:message.operationState=4;break;case"SUCCESSFUL":case 5:message.operationState=5;break;case"FAILED":case 6:message.operationState=6;break;case"CANCELLED":case 7:message.operationState=7;break}if(object.database!=null)message.database=String(object.database);if(object.backup!=null)message.backup=String(object.backup);if(object.progressPercentage!=null){if(typeof object.progressPercentage!=="object")throw TypeError(".google.firestore.admin.v1.RestoreDatabaseMetadata.progressPercentage: object expected");message.progressPercentage=$root.google.firestore.admin.v1.Progress.fromObject(object.progressPercentage,long+1)}return message};RestoreDatabaseMetadata.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.startTime=null;object.endTime=null;object.operationState=options.enums===String?"OPERATION_STATE_UNSPECIFIED":0;object.database="";object.backup="";object.progressPercentage=null}if(message.startTime!=null&&message.hasOwnProperty("startTime"))object.startTime=$root.google.protobuf.Timestamp.toObject(message.startTime,options);if(message.endTime!=null&&message.hasOwnProperty("endTime"))object.endTime=$root.google.protobuf.Timestamp.toObject(message.endTime,options);if(message.operationState!=null&&message.hasOwnProperty("operationState"))object.operationState=options.enums===String?$root.google.firestore.admin.v1.OperationState[message.operationState]===undefined?message.operationState:$root.google.firestore.admin.v1.OperationState[message.operationState]:message.operationState;if(message.database!=null&&message.hasOwnProperty("database"))object.database=message.database;if(message.backup!=null&&message.hasOwnProperty("backup"))object.backup=message.backup;if(message.progressPercentage!=null&&message.hasOwnProperty("progressPercentage"))object.progressPercentage=$root.google.firestore.admin.v1.Progress.toObject(message.progressPercentage,options);return object};RestoreDatabaseMetadata.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RestoreDatabaseMetadata.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.RestoreDatabaseMetadata"};return RestoreDatabaseMetadata}();v1.CloneDatabaseMetadata=function(){function CloneDatabaseMetadata(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.CloneDatabaseMetadata;while(reader.pos>>3){case 1:{message.startTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.endTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.operationState=reader.int32();break}case 4:{message.database=reader.string();break}case 7:{message.pitrSnapshot=$root.google.firestore.admin.v1.PitrSnapshot.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.progressPercentage=$root.google.firestore.admin.v1.Progress.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};CloneDatabaseMetadata.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CloneDatabaseMetadata.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.startTime!=null&&message.hasOwnProperty("startTime")){var error=$root.google.protobuf.Timestamp.verify(message.startTime,long+1);if(error)return"startTime."+error}if(message.endTime!=null&&message.hasOwnProperty("endTime")){var error=$root.google.protobuf.Timestamp.verify(message.endTime,long+1);if(error)return"endTime."+error}if(message.operationState!=null&&message.hasOwnProperty("operationState"))switch(message.operationState){default:return"operationState: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:break}if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.pitrSnapshot!=null&&message.hasOwnProperty("pitrSnapshot")){var error=$root.google.firestore.admin.v1.PitrSnapshot.verify(message.pitrSnapshot,long+1);if(error)return"pitrSnapshot."+error}if(message.progressPercentage!=null&&message.hasOwnProperty("progressPercentage")){var error=$root.google.firestore.admin.v1.Progress.verify(message.progressPercentage,long+1);if(error)return"progressPercentage."+error}return null};CloneDatabaseMetadata.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.CloneDatabaseMetadata)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.CloneDatabaseMetadata;if(object.startTime!=null){if(typeof object.startTime!=="object")throw TypeError(".google.firestore.admin.v1.CloneDatabaseMetadata.startTime: object expected");message.startTime=$root.google.protobuf.Timestamp.fromObject(object.startTime,long+1)}if(object.endTime!=null){if(typeof object.endTime!=="object")throw TypeError(".google.firestore.admin.v1.CloneDatabaseMetadata.endTime: object expected");message.endTime=$root.google.protobuf.Timestamp.fromObject(object.endTime,long+1)}switch(object.operationState){default:if(typeof object.operationState==="number"){message.operationState=object.operationState;break}break;case"OPERATION_STATE_UNSPECIFIED":case 0:message.operationState=0;break;case"INITIALIZING":case 1:message.operationState=1;break;case"PROCESSING":case 2:message.operationState=2;break;case"CANCELLING":case 3:message.operationState=3;break;case"FINALIZING":case 4:message.operationState=4;break;case"SUCCESSFUL":case 5:message.operationState=5;break;case"FAILED":case 6:message.operationState=6;break;case"CANCELLED":case 7:message.operationState=7;break}if(object.database!=null)message.database=String(object.database);if(object.pitrSnapshot!=null){if(typeof object.pitrSnapshot!=="object")throw TypeError(".google.firestore.admin.v1.CloneDatabaseMetadata.pitrSnapshot: object expected");message.pitrSnapshot=$root.google.firestore.admin.v1.PitrSnapshot.fromObject(object.pitrSnapshot,long+1)}if(object.progressPercentage!=null){if(typeof object.progressPercentage!=="object")throw TypeError(".google.firestore.admin.v1.CloneDatabaseMetadata.progressPercentage: object expected");message.progressPercentage=$root.google.firestore.admin.v1.Progress.fromObject(object.progressPercentage,long+1)}return message};CloneDatabaseMetadata.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.startTime=null;object.endTime=null;object.operationState=options.enums===String?"OPERATION_STATE_UNSPECIFIED":0;object.database="";object.progressPercentage=null;object.pitrSnapshot=null}if(message.startTime!=null&&message.hasOwnProperty("startTime"))object.startTime=$root.google.protobuf.Timestamp.toObject(message.startTime,options);if(message.endTime!=null&&message.hasOwnProperty("endTime"))object.endTime=$root.google.protobuf.Timestamp.toObject(message.endTime,options);if(message.operationState!=null&&message.hasOwnProperty("operationState"))object.operationState=options.enums===String?$root.google.firestore.admin.v1.OperationState[message.operationState]===undefined?message.operationState:$root.google.firestore.admin.v1.OperationState[message.operationState]:message.operationState;if(message.database!=null&&message.hasOwnProperty("database"))object.database=message.database;if(message.progressPercentage!=null&&message.hasOwnProperty("progressPercentage"))object.progressPercentage=$root.google.firestore.admin.v1.Progress.toObject(message.progressPercentage,options);if(message.pitrSnapshot!=null&&message.hasOwnProperty("pitrSnapshot"))object.pitrSnapshot=$root.google.firestore.admin.v1.PitrSnapshot.toObject(message.pitrSnapshot,options);return object};CloneDatabaseMetadata.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CloneDatabaseMetadata.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.CloneDatabaseMetadata"};return CloneDatabaseMetadata}();v1.Progress=function(){function Progress(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.Progress;while(reader.pos>>3){case 1:{message.estimatedWork=reader.int64();break}case 2:{message.completedWork=reader.int64();break}default:reader.skipType(tag&7,long);break}}return message};Progress.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Progress.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.estimatedWork!=null&&message.hasOwnProperty("estimatedWork"))if(!$util.isInteger(message.estimatedWork)&&!(message.estimatedWork&&$util.isInteger(message.estimatedWork.low)&&$util.isInteger(message.estimatedWork.high)))return"estimatedWork: integer|Long expected";if(message.completedWork!=null&&message.hasOwnProperty("completedWork"))if(!$util.isInteger(message.completedWork)&&!(message.completedWork&&$util.isInteger(message.completedWork.low)&&$util.isInteger(message.completedWork.high)))return"completedWork: integer|Long expected";return null};Progress.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.Progress)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.Progress;if(object.estimatedWork!=null)if($util.Long)(message.estimatedWork=$util.Long.fromValue(object.estimatedWork)).unsigned=false;else if(typeof object.estimatedWork==="string")message.estimatedWork=parseInt(object.estimatedWork,10);else if(typeof object.estimatedWork==="number")message.estimatedWork=object.estimatedWork;else if(typeof object.estimatedWork==="object")message.estimatedWork=new $util.LongBits(object.estimatedWork.low>>>0,object.estimatedWork.high>>>0).toNumber();if(object.completedWork!=null)if($util.Long)(message.completedWork=$util.Long.fromValue(object.completedWork)).unsigned=false;else if(typeof object.completedWork==="string")message.completedWork=parseInt(object.completedWork,10);else if(typeof object.completedWork==="number")message.completedWork=object.completedWork;else if(typeof object.completedWork==="object")message.completedWork=new $util.LongBits(object.completedWork.low>>>0,object.completedWork.high>>>0).toNumber();return message};Progress.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){if($util.Long){var long=new $util.Long(0,0,false);object.estimatedWork=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.estimatedWork=options.longs===String?"0":0;if($util.Long){var long=new $util.Long(0,0,false);object.completedWork=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.completedWork=options.longs===String?"0":0}if(message.estimatedWork!=null&&message.hasOwnProperty("estimatedWork"))if(typeof message.estimatedWork==="number")object.estimatedWork=options.longs===String?String(message.estimatedWork):message.estimatedWork;else object.estimatedWork=options.longs===String?$util.Long.prototype.toString.call(message.estimatedWork):options.longs===Number?new $util.LongBits(message.estimatedWork.low>>>0,message.estimatedWork.high>>>0).toNumber():message.estimatedWork;if(message.completedWork!=null&&message.hasOwnProperty("completedWork"))if(typeof message.completedWork==="number")object.completedWork=options.longs===String?String(message.completedWork):message.completedWork;else object.completedWork=options.longs===String?$util.Long.prototype.toString.call(message.completedWork):options.longs===Number?new $util.LongBits(message.completedWork.low>>>0,message.completedWork.high>>>0).toNumber():message.completedWork;return object};Progress.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Progress.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.Progress"};return Progress}();v1.OperationState=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="OPERATION_STATE_UNSPECIFIED"]=0;values[valuesById[1]="INITIALIZING"]=1;values[valuesById[2]="PROCESSING"]=2;values[valuesById[3]="CANCELLING"]=3;values[valuesById[4]="FINALIZING"]=4;values[valuesById[5]="SUCCESSFUL"]=5;values[valuesById[6]="FAILED"]=6;values[valuesById[7]="CANCELLED"]=7;return values}();v1.PitrSnapshot=function(){function PitrSnapshot(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.PitrSnapshot;while(reader.pos>>3){case 1:{message.database=reader.string();break}case 2:{message.databaseUid=reader.bytes();break}case 3:{message.snapshotTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};PitrSnapshot.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};PitrSnapshot.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.databaseUid!=null&&message.hasOwnProperty("databaseUid"))if(!(message.databaseUid&&typeof message.databaseUid.length==="number"||$util.isString(message.databaseUid)))return"databaseUid: buffer expected";if(message.snapshotTime!=null&&message.hasOwnProperty("snapshotTime")){var error=$root.google.protobuf.Timestamp.verify(message.snapshotTime,long+1);if(error)return"snapshotTime."+error}return null};PitrSnapshot.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.PitrSnapshot)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.PitrSnapshot;if(object.database!=null)message.database=String(object.database);if(object.databaseUid!=null)if(typeof object.databaseUid==="string")$util.base64.decode(object.databaseUid,message.databaseUid=$util.newBuffer($util.base64.length(object.databaseUid)),0);else if(object.databaseUid.length>=0)message.databaseUid=object.databaseUid;if(object.snapshotTime!=null){if(typeof object.snapshotTime!=="object")throw TypeError(".google.firestore.admin.v1.PitrSnapshot.snapshotTime: object expected");message.snapshotTime=$root.google.protobuf.Timestamp.fromObject(object.snapshotTime,long+1)}return message};PitrSnapshot.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.database="";if(options.bytes===String)object.databaseUid="";else{object.databaseUid=[];if(options.bytes!==Array)object.databaseUid=$util.newBuffer(object.databaseUid)}object.snapshotTime=null}if(message.database!=null&&message.hasOwnProperty("database"))object.database=message.database;if(message.databaseUid!=null&&message.hasOwnProperty("databaseUid"))object.databaseUid=options.bytes===String?$util.base64.encode(message.databaseUid,0,message.databaseUid.length):options.bytes===Array?Array.prototype.slice.call(message.databaseUid):message.databaseUid;if(message.snapshotTime!=null&&message.hasOwnProperty("snapshotTime"))object.snapshotTime=$root.google.protobuf.Timestamp.toObject(message.snapshotTime,options);return object};PitrSnapshot.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};PitrSnapshot.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.PitrSnapshot"};return PitrSnapshot}();v1.BackupSchedule=function(){function BackupSchedule(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.BackupSchedule;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 3:{message.createTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 10:{message.updateTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.retention=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.dailyRecurrence=$root.google.firestore.admin.v1.DailyRecurrence.decode(reader,reader.uint32(),undefined,long+1);break}case 8:{message.weeklyRecurrence=$root.google.firestore.admin.v1.WeeklyRecurrence.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};BackupSchedule.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BackupSchedule.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.createTime!=null&&message.hasOwnProperty("createTime")){var error=$root.google.protobuf.Timestamp.verify(message.createTime,long+1);if(error)return"createTime."+error}if(message.updateTime!=null&&message.hasOwnProperty("updateTime")){var error=$root.google.protobuf.Timestamp.verify(message.updateTime,long+1);if(error)return"updateTime."+error}if(message.retention!=null&&message.hasOwnProperty("retention")){var error=$root.google.protobuf.Duration.verify(message.retention,long+1);if(error)return"retention."+error}if(message.dailyRecurrence!=null&&message.hasOwnProperty("dailyRecurrence")){properties.recurrence=1;{var error=$root.google.firestore.admin.v1.DailyRecurrence.verify(message.dailyRecurrence,long+1);if(error)return"dailyRecurrence."+error}}if(message.weeklyRecurrence!=null&&message.hasOwnProperty("weeklyRecurrence")){if(properties.recurrence===1)return"recurrence: multiple values";properties.recurrence=1;{var error=$root.google.firestore.admin.v1.WeeklyRecurrence.verify(message.weeklyRecurrence,long+1);if(error)return"weeklyRecurrence."+error}}return null};BackupSchedule.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.BackupSchedule)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.BackupSchedule;if(object.name!=null)message.name=String(object.name);if(object.createTime!=null){if(typeof object.createTime!=="object")throw TypeError(".google.firestore.admin.v1.BackupSchedule.createTime: object expected");message.createTime=$root.google.protobuf.Timestamp.fromObject(object.createTime,long+1)}if(object.updateTime!=null){if(typeof object.updateTime!=="object")throw TypeError(".google.firestore.admin.v1.BackupSchedule.updateTime: object expected");message.updateTime=$root.google.protobuf.Timestamp.fromObject(object.updateTime,long+1)}if(object.retention!=null){if(typeof object.retention!=="object")throw TypeError(".google.firestore.admin.v1.BackupSchedule.retention: object expected");message.retention=$root.google.protobuf.Duration.fromObject(object.retention,long+1)}if(object.dailyRecurrence!=null){if(typeof object.dailyRecurrence!=="object")throw TypeError(".google.firestore.admin.v1.BackupSchedule.dailyRecurrence: object expected");message.dailyRecurrence=$root.google.firestore.admin.v1.DailyRecurrence.fromObject(object.dailyRecurrence,long+1)}if(object.weeklyRecurrence!=null){if(typeof object.weeklyRecurrence!=="object")throw TypeError(".google.firestore.admin.v1.BackupSchedule.weeklyRecurrence: object expected");message.weeklyRecurrence=$root.google.firestore.admin.v1.WeeklyRecurrence.fromObject(object.weeklyRecurrence,long+1)}return message};BackupSchedule.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.createTime=null;object.retention=null;object.updateTime=null}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.createTime!=null&&message.hasOwnProperty("createTime"))object.createTime=$root.google.protobuf.Timestamp.toObject(message.createTime,options);if(message.retention!=null&&message.hasOwnProperty("retention"))object.retention=$root.google.protobuf.Duration.toObject(message.retention,options);if(message.dailyRecurrence!=null&&message.hasOwnProperty("dailyRecurrence")){object.dailyRecurrence=$root.google.firestore.admin.v1.DailyRecurrence.toObject(message.dailyRecurrence,options);if(options.oneofs)object.recurrence="dailyRecurrence"}if(message.weeklyRecurrence!=null&&message.hasOwnProperty("weeklyRecurrence")){object.weeklyRecurrence=$root.google.firestore.admin.v1.WeeklyRecurrence.toObject(message.weeklyRecurrence,options);if(options.oneofs)object.recurrence="weeklyRecurrence"}if(message.updateTime!=null&&message.hasOwnProperty("updateTime"))object.updateTime=$root.google.protobuf.Timestamp.toObject(message.updateTime,options);return object};BackupSchedule.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BackupSchedule.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.BackupSchedule"};return BackupSchedule}();v1.DailyRecurrence=function(){function DailyRecurrence(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.DailyRecurrence;while(reader.pos>>3){default:reader.skipType(tag&7,long);break}}return message};DailyRecurrence.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DailyRecurrence.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};DailyRecurrence.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.DailyRecurrence)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.firestore.admin.v1.DailyRecurrence};DailyRecurrence.toObject=function toObject(){return{}};DailyRecurrence.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DailyRecurrence.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.DailyRecurrence"};return DailyRecurrence}();v1.WeeklyRecurrence=function(){function WeeklyRecurrence(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.WeeklyRecurrence;while(reader.pos>>3){case 2:{message.day=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};WeeklyRecurrence.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};WeeklyRecurrence.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.day!=null&&message.hasOwnProperty("day"))switch(message.day){default:return"day: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:break}return null};WeeklyRecurrence.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.WeeklyRecurrence)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.WeeklyRecurrence;switch(object.day){default:if(typeof object.day==="number"){message.day=object.day;break}break;case"DAY_OF_WEEK_UNSPECIFIED":case 0:message.day=0;break;case"MONDAY":case 1:message.day=1;break;case"TUESDAY":case 2:message.day=2;break;case"WEDNESDAY":case 3:message.day=3;break;case"THURSDAY":case 4:message.day=4;break;case"FRIDAY":case 5:message.day=5;break;case"SATURDAY":case 6:message.day=6;break;case"SUNDAY":case 7:message.day=7;break}return message};WeeklyRecurrence.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.day=options.enums===String?"DAY_OF_WEEK_UNSPECIFIED":0;if(message.day!=null&&message.hasOwnProperty("day"))object.day=options.enums===String?$root.google.type.DayOfWeek[message.day]===undefined?message.day:$root.google.type.DayOfWeek[message.day]:message.day;return object};WeeklyRecurrence.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};WeeklyRecurrence.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.WeeklyRecurrence"};return WeeklyRecurrence}();v1.UserCreds=function(){function UserCreds(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.UserCreds;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{message.createTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.updateTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.state=reader.int32();break}case 5:{message.securePassword=reader.string();break}case 6:{message.resourceIdentity=$root.google.firestore.admin.v1.UserCreds.ResourceIdentity.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};UserCreds.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UserCreds.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.createTime!=null&&message.hasOwnProperty("createTime")){var error=$root.google.protobuf.Timestamp.verify(message.createTime,long+1);if(error)return"createTime."+error}if(message.updateTime!=null&&message.hasOwnProperty("updateTime")){var error=$root.google.protobuf.Timestamp.verify(message.updateTime,long+1);if(error)return"updateTime."+error}if(message.state!=null&&message.hasOwnProperty("state"))switch(message.state){default:return"state: enum value expected";case 0:case 1:case 2:break}if(message.securePassword!=null&&message.hasOwnProperty("securePassword"))if(!$util.isString(message.securePassword))return"securePassword: string expected";if(message.resourceIdentity!=null&&message.hasOwnProperty("resourceIdentity")){properties.UserCredsIdentity=1;{var error=$root.google.firestore.admin.v1.UserCreds.ResourceIdentity.verify(message.resourceIdentity,long+1);if(error)return"resourceIdentity."+error}}return null};UserCreds.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.UserCreds)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.UserCreds;if(object.name!=null)message.name=String(object.name);if(object.createTime!=null){if(typeof object.createTime!=="object")throw TypeError(".google.firestore.admin.v1.UserCreds.createTime: object expected");message.createTime=$root.google.protobuf.Timestamp.fromObject(object.createTime,long+1)}if(object.updateTime!=null){if(typeof object.updateTime!=="object")throw TypeError(".google.firestore.admin.v1.UserCreds.updateTime: object expected");message.updateTime=$root.google.protobuf.Timestamp.fromObject(object.updateTime,long+1)}switch(object.state){default:if(typeof object.state==="number"){message.state=object.state;break}break;case"STATE_UNSPECIFIED":case 0:message.state=0;break;case"ENABLED":case 1:message.state=1;break;case"DISABLED":case 2:message.state=2;break}if(object.securePassword!=null)message.securePassword=String(object.securePassword);if(object.resourceIdentity!=null){if(typeof object.resourceIdentity!=="object")throw TypeError(".google.firestore.admin.v1.UserCreds.resourceIdentity: object expected");message.resourceIdentity=$root.google.firestore.admin.v1.UserCreds.ResourceIdentity.fromObject(object.resourceIdentity,long+1)}return message};UserCreds.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.createTime=null;object.updateTime=null;object.state=options.enums===String?"STATE_UNSPECIFIED":0;object.securePassword=""}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.createTime!=null&&message.hasOwnProperty("createTime"))object.createTime=$root.google.protobuf.Timestamp.toObject(message.createTime,options);if(message.updateTime!=null&&message.hasOwnProperty("updateTime"))object.updateTime=$root.google.protobuf.Timestamp.toObject(message.updateTime,options);if(message.state!=null&&message.hasOwnProperty("state"))object.state=options.enums===String?$root.google.firestore.admin.v1.UserCreds.State[message.state]===undefined?message.state:$root.google.firestore.admin.v1.UserCreds.State[message.state]:message.state;if(message.securePassword!=null&&message.hasOwnProperty("securePassword"))object.securePassword=message.securePassword;if(message.resourceIdentity!=null&&message.hasOwnProperty("resourceIdentity")){object.resourceIdentity=$root.google.firestore.admin.v1.UserCreds.ResourceIdentity.toObject(message.resourceIdentity,options);if(options.oneofs)object.UserCredsIdentity="resourceIdentity"}return object};UserCreds.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UserCreds.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.UserCreds"};UserCreds.State=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="STATE_UNSPECIFIED"]=0;values[valuesById[1]="ENABLED"]=1;values[valuesById[2]="DISABLED"]=2;return values}();UserCreds.ResourceIdentity=function(){function ResourceIdentity(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.UserCreds.ResourceIdentity;while(reader.pos>>3){case 1:{message.principal=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ResourceIdentity.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ResourceIdentity.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.principal!=null&&message.hasOwnProperty("principal"))if(!$util.isString(message.principal))return"principal: string expected";return null};ResourceIdentity.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.UserCreds.ResourceIdentity)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.admin.v1.UserCreds.ResourceIdentity;if(object.principal!=null)message.principal=String(object.principal);return message};ResourceIdentity.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.principal="";if(message.principal!=null&&message.hasOwnProperty("principal"))object.principal=message.principal;return object};ResourceIdentity.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ResourceIdentity.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.UserCreds.ResourceIdentity"};return ResourceIdentity}();return UserCreds}();v1.LocationMetadata=function(){function LocationMetadata(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.admin.v1.LocationMetadata;while(reader.pos>>3){default:reader.skipType(tag&7,long);break}}return message};LocationMetadata.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};LocationMetadata.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};LocationMetadata.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.admin.v1.LocationMetadata)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.firestore.admin.v1.LocationMetadata};LocationMetadata.toObject=function toObject(){return{}};LocationMetadata.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};LocationMetadata.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.admin.v1.LocationMetadata"};return LocationMetadata}();return v1}();return admin}();firestore.v1=function(){var v1={};v1.AggregationResult=function(){function AggregationResult(properties){this.aggregateFields={};if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.AggregationResult,key,value;while(reader.pos>>3){case 2:{if(message.aggregateFields===$util.emptyObject)message.aggregateFields={};var end2=reader.uint32()+reader.pos;key="";value=null;while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=$root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1);break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.aggregateFields,key);message.aggregateFields[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};AggregationResult.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};AggregationResult.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.aggregateFields!=null&&message.hasOwnProperty("aggregateFields")){if(!$util.isObject(message.aggregateFields))return"aggregateFields: object expected";var key=Object.keys(message.aggregateFields);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.AggregationResult;if(object.aggregateFields){if(typeof object.aggregateFields!=="object")throw TypeError(".google.firestore.v1.AggregationResult.aggregateFields: object expected");message.aggregateFields={};for(var keys=Object.keys(object.aggregateFields),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.Document,key,value;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{if(message.fields===$util.emptyObject)message.fields={};var end2=reader.uint32()+reader.pos;key="";value=null;while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=$root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1);break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.fields,key);message.fields[key]=value;break}case 3:{message.createTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.updateTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Document.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Document.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.fields!=null&&message.hasOwnProperty("fields")){if(!$util.isObject(message.fields))return"fields: object expected";var key=Object.keys(message.fields);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.Document;if(object.name!=null)message.name=String(object.name);if(object.fields){if(typeof object.fields!=="object")throw TypeError(".google.firestore.v1.Document.fields: object expected");message.fields={};for(var keys=Object.keys(object.fields),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.Value;while(reader.pos>>3){case 11:{message.nullValue=reader.int32();break}case 1:{message.booleanValue=reader.bool();break}case 2:{message.integerValue=reader.int64();break}case 3:{message.doubleValue=reader.double();break}case 10:{message.timestampValue=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 17:{message.stringValue=reader.string();break}case 18:{message.bytesValue=reader.bytes();break}case 5:{message.referenceValue=reader.string();break}case 8:{message.geoPointValue=$root.google.type.LatLng.decode(reader,reader.uint32(),undefined,long+1);break}case 9:{message.arrayValue=$root.google.firestore.v1.ArrayValue.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.mapValue=$root.google.firestore.v1.MapValue.decode(reader,reader.uint32(),undefined,long+1);break}case 19:{message.fieldReferenceValue=reader.string();break}case 22:{message.variableReferenceValue=reader.string();break}case 20:{message.functionValue=$root.google.firestore.v1.Function.decode(reader,reader.uint32(),undefined,long+1);break}case 21:{message.pipelineValue=$root.google.firestore.v1.Pipeline.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Value.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Value.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.nullValue!=null&&message.hasOwnProperty("nullValue")){properties.valueType=1;switch(message.nullValue){default:return"nullValue: enum value expected";case 0:break}}if(message.booleanValue!=null&&message.hasOwnProperty("booleanValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;if(typeof message.booleanValue!=="boolean")return"booleanValue: boolean expected"}if(message.integerValue!=null&&message.hasOwnProperty("integerValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;if(!$util.isInteger(message.integerValue)&&!(message.integerValue&&$util.isInteger(message.integerValue.low)&&$util.isInteger(message.integerValue.high)))return"integerValue: integer|Long expected"}if(message.doubleValue!=null&&message.hasOwnProperty("doubleValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;if(typeof message.doubleValue!=="number")return"doubleValue: number expected"}if(message.timestampValue!=null&&message.hasOwnProperty("timestampValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;{var error=$root.google.protobuf.Timestamp.verify(message.timestampValue,long+1);if(error)return"timestampValue."+error}}if(message.stringValue!=null&&message.hasOwnProperty("stringValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;if(!$util.isString(message.stringValue))return"stringValue: string expected"}if(message.bytesValue!=null&&message.hasOwnProperty("bytesValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;if(!(message.bytesValue&&typeof message.bytesValue.length==="number"||$util.isString(message.bytesValue)))return"bytesValue: buffer expected"}if(message.referenceValue!=null&&message.hasOwnProperty("referenceValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;if(!$util.isString(message.referenceValue))return"referenceValue: string expected"}if(message.geoPointValue!=null&&message.hasOwnProperty("geoPointValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;{var error=$root.google.type.LatLng.verify(message.geoPointValue,long+1);if(error)return"geoPointValue."+error}}if(message.arrayValue!=null&&message.hasOwnProperty("arrayValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;{var error=$root.google.firestore.v1.ArrayValue.verify(message.arrayValue,long+1);if(error)return"arrayValue."+error}}if(message.mapValue!=null&&message.hasOwnProperty("mapValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;{var error=$root.google.firestore.v1.MapValue.verify(message.mapValue,long+1);if(error)return"mapValue."+error}}if(message.fieldReferenceValue!=null&&message.hasOwnProperty("fieldReferenceValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;if(!$util.isString(message.fieldReferenceValue))return"fieldReferenceValue: string expected"}if(message.variableReferenceValue!=null&&message.hasOwnProperty("variableReferenceValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;if(!$util.isString(message.variableReferenceValue))return"variableReferenceValue: string expected"}if(message.functionValue!=null&&message.hasOwnProperty("functionValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;{var error=$root.google.firestore.v1.Function.verify(message.functionValue,long+1);if(error)return"functionValue."+error}}if(message.pipelineValue!=null&&message.hasOwnProperty("pipelineValue")){if(properties.valueType===1)return"valueType: multiple values";properties.valueType=1;{var error=$root.google.firestore.v1.Pipeline.verify(message.pipelineValue,long+1);if(error)return"pipelineValue."+error}}return null};Value.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.Value)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.Value;switch(object.nullValue){default:if(typeof object.nullValue==="number"){message.nullValue=object.nullValue;break}break;case"NULL_VALUE":case 0:message.nullValue=0;break}if(object.booleanValue!=null)message.booleanValue=Boolean(object.booleanValue);if(object.integerValue!=null)if($util.Long)(message.integerValue=$util.Long.fromValue(object.integerValue)).unsigned=false;else if(typeof object.integerValue==="string")message.integerValue=parseInt(object.integerValue,10);else if(typeof object.integerValue==="number")message.integerValue=object.integerValue;else if(typeof object.integerValue==="object")message.integerValue=new $util.LongBits(object.integerValue.low>>>0,object.integerValue.high>>>0).toNumber();if(object.doubleValue!=null)message.doubleValue=Number(object.doubleValue);if(object.timestampValue!=null){if(typeof object.timestampValue!=="object")throw TypeError(".google.firestore.v1.Value.timestampValue: object expected");message.timestampValue=$root.google.protobuf.Timestamp.fromObject(object.timestampValue,long+1)}if(object.stringValue!=null)message.stringValue=String(object.stringValue);if(object.bytesValue!=null)if(typeof object.bytesValue==="string")$util.base64.decode(object.bytesValue,message.bytesValue=$util.newBuffer($util.base64.length(object.bytesValue)),0);else if(object.bytesValue.length>=0)message.bytesValue=object.bytesValue;if(object.referenceValue!=null)message.referenceValue=String(object.referenceValue);if(object.geoPointValue!=null){if(typeof object.geoPointValue!=="object")throw TypeError(".google.firestore.v1.Value.geoPointValue: object expected");message.geoPointValue=$root.google.type.LatLng.fromObject(object.geoPointValue,long+1)}if(object.arrayValue!=null){if(typeof object.arrayValue!=="object")throw TypeError(".google.firestore.v1.Value.arrayValue: object expected");message.arrayValue=$root.google.firestore.v1.ArrayValue.fromObject(object.arrayValue,long+1)}if(object.mapValue!=null){if(typeof object.mapValue!=="object")throw TypeError(".google.firestore.v1.Value.mapValue: object expected");message.mapValue=$root.google.firestore.v1.MapValue.fromObject(object.mapValue,long+1)}if(object.fieldReferenceValue!=null)message.fieldReferenceValue=String(object.fieldReferenceValue);if(object.variableReferenceValue!=null)message.variableReferenceValue=String(object.variableReferenceValue);if(object.functionValue!=null){if(typeof object.functionValue!=="object")throw TypeError(".google.firestore.v1.Value.functionValue: object expected");message.functionValue=$root.google.firestore.v1.Function.fromObject(object.functionValue,long+1)}if(object.pipelineValue!=null){if(typeof object.pipelineValue!=="object")throw TypeError(".google.firestore.v1.Value.pipelineValue: object expected");message.pipelineValue=$root.google.firestore.v1.Pipeline.fromObject(object.pipelineValue,long+1)}return message};Value.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.booleanValue!=null&&message.hasOwnProperty("booleanValue")){object.booleanValue=message.booleanValue;if(options.oneofs)object.valueType="booleanValue"}if(message.integerValue!=null&&message.hasOwnProperty("integerValue")){if(typeof message.integerValue==="number")object.integerValue=options.longs===String?String(message.integerValue):message.integerValue;else object.integerValue=options.longs===String?$util.Long.prototype.toString.call(message.integerValue):options.longs===Number?new $util.LongBits(message.integerValue.low>>>0,message.integerValue.high>>>0).toNumber():message.integerValue;if(options.oneofs)object.valueType="integerValue"}if(message.doubleValue!=null&&message.hasOwnProperty("doubleValue")){object.doubleValue=options.json&&!isFinite(message.doubleValue)?String(message.doubleValue):message.doubleValue;if(options.oneofs)object.valueType="doubleValue"}if(message.referenceValue!=null&&message.hasOwnProperty("referenceValue")){object.referenceValue=message.referenceValue;if(options.oneofs)object.valueType="referenceValue"}if(message.mapValue!=null&&message.hasOwnProperty("mapValue")){object.mapValue=$root.google.firestore.v1.MapValue.toObject(message.mapValue,options);if(options.oneofs)object.valueType="mapValue"}if(message.geoPointValue!=null&&message.hasOwnProperty("geoPointValue")){object.geoPointValue=$root.google.type.LatLng.toObject(message.geoPointValue,options);if(options.oneofs)object.valueType="geoPointValue"}if(message.arrayValue!=null&&message.hasOwnProperty("arrayValue")){object.arrayValue=$root.google.firestore.v1.ArrayValue.toObject(message.arrayValue,options);if(options.oneofs)object.valueType="arrayValue"}if(message.timestampValue!=null&&message.hasOwnProperty("timestampValue")){object.timestampValue=$root.google.protobuf.Timestamp.toObject(message.timestampValue,options);if(options.oneofs)object.valueType="timestampValue"}if(message.nullValue!=null&&message.hasOwnProperty("nullValue")){object.nullValue=options.enums===String?$root.google.protobuf.NullValue[message.nullValue]===undefined?message.nullValue:$root.google.protobuf.NullValue[message.nullValue]:message.nullValue;if(options.oneofs)object.valueType="nullValue"}if(message.stringValue!=null&&message.hasOwnProperty("stringValue")){object.stringValue=message.stringValue;if(options.oneofs)object.valueType="stringValue"}if(message.bytesValue!=null&&message.hasOwnProperty("bytesValue")){object.bytesValue=options.bytes===String?$util.base64.encode(message.bytesValue,0,message.bytesValue.length):options.bytes===Array?Array.prototype.slice.call(message.bytesValue):message.bytesValue;if(options.oneofs)object.valueType="bytesValue"}if(message.fieldReferenceValue!=null&&message.hasOwnProperty("fieldReferenceValue")){object.fieldReferenceValue=message.fieldReferenceValue;if(options.oneofs)object.valueType="fieldReferenceValue"}if(message.functionValue!=null&&message.hasOwnProperty("functionValue")){object.functionValue=$root.google.firestore.v1.Function.toObject(message.functionValue,options);if(options.oneofs)object.valueType="functionValue"}if(message.pipelineValue!=null&&message.hasOwnProperty("pipelineValue")){object.pipelineValue=$root.google.firestore.v1.Pipeline.toObject(message.pipelineValue,options);if(options.oneofs)object.valueType="pipelineValue"}if(message.variableReferenceValue!=null&&message.hasOwnProperty("variableReferenceValue")){object.variableReferenceValue=message.variableReferenceValue;if(options.oneofs)object.valueType="variableReferenceValue"}return object};Value.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.Value"};return Value}();v1.ArrayValue=function(){function ArrayValue(properties){this.values=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ArrayValue;while(reader.pos>>3){case 1:{if(!(message.values&&message.values.length))message.values=[];message.values.push($root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};ArrayValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ArrayValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.values!=null&&message.hasOwnProperty("values")){if(!Array.isArray(message.values))return"values: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ArrayValue;if(object.values){if(!Array.isArray(object.values))throw TypeError(".google.firestore.v1.ArrayValue.values: array expected");message.values=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.MapValue,key,value;while(reader.pos>>3){case 1:{if(message.fields===$util.emptyObject)message.fields={};var end2=reader.uint32()+reader.pos;key="";value=null;while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=$root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1);break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.fields,key);message.fields[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};MapValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};MapValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.fields!=null&&message.hasOwnProperty("fields")){if(!$util.isObject(message.fields))return"fields: object expected";var key=Object.keys(message.fields);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.MapValue;if(object.fields){if(typeof object.fields!=="object")throw TypeError(".google.firestore.v1.MapValue.fields: object expected");message.fields={};for(var keys=Object.keys(object.fields),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.Function,key,value;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{if(!(message.args&&message.args.length))message.args=[];message.args.push($root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{if(message.options===$util.emptyObject)message.options={};var end2=reader.uint32()+reader.pos;key="";value=null;while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=$root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1);break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.options,key);message.options[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};Function.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Function.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.args!=null&&message.hasOwnProperty("args")){if(!Array.isArray(message.args))return"args: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.Function;if(object.name!=null)message.name=String(object.name);if(object.args){if(!Array.isArray(object.args))throw TypeError(".google.firestore.v1.Function.args: array expected");message.args=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.Pipeline;while(reader.pos>>3){case 1:{if(!(message.stages&&message.stages.length))message.stages=[];message.stages.push($root.google.firestore.v1.Pipeline.Stage.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};Pipeline.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Pipeline.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.stages!=null&&message.hasOwnProperty("stages")){if(!Array.isArray(message.stages))return"stages: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.Pipeline;if(object.stages){if(!Array.isArray(object.stages))throw TypeError(".google.firestore.v1.Pipeline.stages: array expected");message.stages=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.Pipeline.Stage,key,value;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{if(!(message.args&&message.args.length))message.args=[];message.args.push($root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{if(message.options===$util.emptyObject)message.options={};var end2=reader.uint32()+reader.pos;key="";value=null;while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=$root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1);break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.options,key);message.options[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};Stage.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Stage.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.args!=null&&message.hasOwnProperty("args")){if(!Array.isArray(message.args))return"args: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.Pipeline.Stage;if(object.name!=null)message.name=String(object.name);if(object.args){if(!Array.isArray(object.args))throw TypeError(".google.firestore.v1.Pipeline.Stage.args: array expected");message.args=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.BitSequence;while(reader.pos>>3){case 1:{message.bitmap=reader.bytes();break}case 2:{message.padding=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};BitSequence.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BitSequence.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.bitmap!=null&&message.hasOwnProperty("bitmap"))if(!(message.bitmap&&typeof message.bitmap.length==="number"||$util.isString(message.bitmap)))return"bitmap: buffer expected";if(message.padding!=null&&message.hasOwnProperty("padding"))if(!$util.isInteger(message.padding))return"padding: integer expected";return null};BitSequence.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.BitSequence)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.BitSequence;if(object.bitmap!=null)if(typeof object.bitmap==="string")$util.base64.decode(object.bitmap,message.bitmap=$util.newBuffer($util.base64.length(object.bitmap)),0);else if(object.bitmap.length>=0)message.bitmap=object.bitmap;if(object.padding!=null)message.padding=object.padding|0;return message};BitSequence.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){if(options.bytes===String)object.bitmap="";else{object.bitmap=[];if(options.bytes!==Array)object.bitmap=$util.newBuffer(object.bitmap)}object.padding=0}if(message.bitmap!=null&&message.hasOwnProperty("bitmap"))object.bitmap=options.bytes===String?$util.base64.encode(message.bitmap,0,message.bitmap.length):options.bytes===Array?Array.prototype.slice.call(message.bitmap):message.bitmap;if(message.padding!=null&&message.hasOwnProperty("padding"))object.padding=message.padding;return object};BitSequence.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BitSequence.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.BitSequence"};return BitSequence}();v1.BloomFilter=function(){function BloomFilter(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.BloomFilter;while(reader.pos>>3){case 1:{message.bits=$root.google.firestore.v1.BitSequence.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.hashCount=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};BloomFilter.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BloomFilter.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.bits!=null&&message.hasOwnProperty("bits")){var error=$root.google.firestore.v1.BitSequence.verify(message.bits,long+1);if(error)return"bits."+error}if(message.hashCount!=null&&message.hasOwnProperty("hashCount"))if(!$util.isInteger(message.hashCount))return"hashCount: integer expected";return null};BloomFilter.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.BloomFilter)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.BloomFilter;if(object.bits!=null){if(typeof object.bits!=="object")throw TypeError(".google.firestore.v1.BloomFilter.bits: object expected");message.bits=$root.google.firestore.v1.BitSequence.fromObject(object.bits,long+1)}if(object.hashCount!=null)message.hashCount=object.hashCount|0;return message};BloomFilter.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.bits=null;object.hashCount=0}if(message.bits!=null&&message.hasOwnProperty("bits"))object.bits=$root.google.firestore.v1.BitSequence.toObject(message.bits,options);if(message.hashCount!=null&&message.hasOwnProperty("hashCount"))object.hashCount=message.hashCount;return object};BloomFilter.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BloomFilter.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.BloomFilter"};return BloomFilter}();v1.DocumentMask=function(){function DocumentMask(properties){this.fieldPaths=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.DocumentMask;while(reader.pos>>3){case 1:{if(!(message.fieldPaths&&message.fieldPaths.length))message.fieldPaths=[];message.fieldPaths.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};DocumentMask.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DocumentMask.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.fieldPaths!=null&&message.hasOwnProperty("fieldPaths")){if(!Array.isArray(message.fieldPaths))return"fieldPaths: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.DocumentMask;if(object.fieldPaths){if(!Array.isArray(object.fieldPaths))throw TypeError(".google.firestore.v1.DocumentMask.fieldPaths: array expected");message.fieldPaths=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.Precondition;while(reader.pos>>3){case 1:{message.exists=reader.bool();break}case 2:{message.updateTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Precondition.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Precondition.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.exists!=null&&message.hasOwnProperty("exists")){properties.conditionType=1;if(typeof message.exists!=="boolean")return"exists: boolean expected"}if(message.updateTime!=null&&message.hasOwnProperty("updateTime")){if(properties.conditionType===1)return"conditionType: multiple values";properties.conditionType=1;{var error=$root.google.protobuf.Timestamp.verify(message.updateTime,long+1);if(error)return"updateTime."+error}}return null};Precondition.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.Precondition)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.Precondition;if(object.exists!=null)message.exists=Boolean(object.exists);if(object.updateTime!=null){if(typeof object.updateTime!=="object")throw TypeError(".google.firestore.v1.Precondition.updateTime: object expected");message.updateTime=$root.google.protobuf.Timestamp.fromObject(object.updateTime,long+1)}return message};Precondition.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.exists!=null&&message.hasOwnProperty("exists")){object.exists=message.exists;if(options.oneofs)object.conditionType="exists"}if(message.updateTime!=null&&message.hasOwnProperty("updateTime")){object.updateTime=$root.google.protobuf.Timestamp.toObject(message.updateTime,options);if(options.oneofs)object.conditionType="updateTime"}return object};Precondition.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Precondition.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.Precondition"};return Precondition}();v1.TransactionOptions=function(){function TransactionOptions(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.TransactionOptions;while(reader.pos>>3){case 2:{message.readOnly=$root.google.firestore.v1.TransactionOptions.ReadOnly.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.readWrite=$root.google.firestore.v1.TransactionOptions.ReadWrite.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};TransactionOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};TransactionOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.readOnly!=null&&message.hasOwnProperty("readOnly")){properties.mode=1;{var error=$root.google.firestore.v1.TransactionOptions.ReadOnly.verify(message.readOnly,long+1);if(error)return"readOnly."+error}}if(message.readWrite!=null&&message.hasOwnProperty("readWrite")){if(properties.mode===1)return"mode: multiple values";properties.mode=1;{var error=$root.google.firestore.v1.TransactionOptions.ReadWrite.verify(message.readWrite,long+1);if(error)return"readWrite."+error}}return null};TransactionOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.TransactionOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.TransactionOptions;if(object.readOnly!=null){if(typeof object.readOnly!=="object")throw TypeError(".google.firestore.v1.TransactionOptions.readOnly: object expected");message.readOnly=$root.google.firestore.v1.TransactionOptions.ReadOnly.fromObject(object.readOnly,long+1)}if(object.readWrite!=null){if(typeof object.readWrite!=="object")throw TypeError(".google.firestore.v1.TransactionOptions.readWrite: object expected");message.readWrite=$root.google.firestore.v1.TransactionOptions.ReadWrite.fromObject(object.readWrite,long+1)}return message};TransactionOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.readOnly!=null&&message.hasOwnProperty("readOnly")){object.readOnly=$root.google.firestore.v1.TransactionOptions.ReadOnly.toObject(message.readOnly,options);if(options.oneofs)object.mode="readOnly"}if(message.readWrite!=null&&message.hasOwnProperty("readWrite")){object.readWrite=$root.google.firestore.v1.TransactionOptions.ReadWrite.toObject(message.readWrite,options);if(options.oneofs)object.mode="readWrite"}return object};TransactionOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};TransactionOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.TransactionOptions"};TransactionOptions.ConcurrencyMode=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="CONCURRENCY_MODE_UNSPECIFIED"]=0;values[valuesById[1]="OPTIMISTIC"]=1;values[valuesById[2]="PESSIMISTIC"]=2;return values}();TransactionOptions.ReadWrite=function(){function ReadWrite(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.TransactionOptions.ReadWrite;while(reader.pos>>3){case 1:{message.retryTransaction=reader.bytes();break}case 2:{message.concurrencyMode=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};ReadWrite.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ReadWrite.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.retryTransaction!=null&&message.hasOwnProperty("retryTransaction"))if(!(message.retryTransaction&&typeof message.retryTransaction.length==="number"||$util.isString(message.retryTransaction)))return"retryTransaction: buffer expected";if(message.concurrencyMode!=null&&message.hasOwnProperty("concurrencyMode"))switch(message.concurrencyMode){default:return"concurrencyMode: enum value expected";case 0:case 1:case 2:break}return null};ReadWrite.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.TransactionOptions.ReadWrite)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.TransactionOptions.ReadWrite;if(object.retryTransaction!=null)if(typeof object.retryTransaction==="string")$util.base64.decode(object.retryTransaction,message.retryTransaction=$util.newBuffer($util.base64.length(object.retryTransaction)),0);else if(object.retryTransaction.length>=0)message.retryTransaction=object.retryTransaction;switch(object.concurrencyMode){default:if(typeof object.concurrencyMode==="number"){message.concurrencyMode=object.concurrencyMode;break}break;case"CONCURRENCY_MODE_UNSPECIFIED":case 0:message.concurrencyMode=0;break;case"OPTIMISTIC":case 1:message.concurrencyMode=1;break;case"PESSIMISTIC":case 2:message.concurrencyMode=2;break}return message};ReadWrite.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){if(options.bytes===String)object.retryTransaction="";else{object.retryTransaction=[];if(options.bytes!==Array)object.retryTransaction=$util.newBuffer(object.retryTransaction)}object.concurrencyMode=options.enums===String?"CONCURRENCY_MODE_UNSPECIFIED":0}if(message.retryTransaction!=null&&message.hasOwnProperty("retryTransaction"))object.retryTransaction=options.bytes===String?$util.base64.encode(message.retryTransaction,0,message.retryTransaction.length):options.bytes===Array?Array.prototype.slice.call(message.retryTransaction):message.retryTransaction;if(message.concurrencyMode!=null&&message.hasOwnProperty("concurrencyMode"))object.concurrencyMode=options.enums===String?$root.google.firestore.v1.TransactionOptions.ConcurrencyMode[message.concurrencyMode]===undefined?message.concurrencyMode:$root.google.firestore.v1.TransactionOptions.ConcurrencyMode[message.concurrencyMode]:message.concurrencyMode;return object};ReadWrite.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ReadWrite.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.TransactionOptions.ReadWrite"};return ReadWrite}();TransactionOptions.ReadOnly=function(){function ReadOnly(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.TransactionOptions.ReadOnly;while(reader.pos>>3){case 2:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ReadOnly.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ReadOnly.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.readTime!=null&&message.hasOwnProperty("readTime")){properties.consistencySelector=1;{var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}}return null};ReadOnly.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.TransactionOptions.ReadOnly)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.TransactionOptions.ReadOnly;if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.TransactionOptions.ReadOnly.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}return message};ReadOnly.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.readTime!=null&&message.hasOwnProperty("readTime")){object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(options.oneofs)object.consistencySelector="readTime"}return object};ReadOnly.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ReadOnly.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.TransactionOptions.ReadOnly"};return ReadOnly}();return TransactionOptions}();v1.ExplainStats=function(){function ExplainStats(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ExplainStats;while(reader.pos>>3){case 1:{message.data=$root.google.protobuf.Any.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ExplainStats.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExplainStats.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.data!=null&&message.hasOwnProperty("data")){var error=$root.google.protobuf.Any.verify(message.data,long+1);if(error)return"data."+error}return null};ExplainStats.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.ExplainStats)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ExplainStats;if(object.data!=null){if(typeof object.data!=="object")throw TypeError(".google.firestore.v1.ExplainStats.data: object expected");message.data=$root.google.protobuf.Any.fromObject(object.data,long+1)}return message};ExplainStats.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.data=null;if(message.data!=null&&message.hasOwnProperty("data"))object.data=$root.google.protobuf.Any.toObject(message.data,options);return object};ExplainStats.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ExplainStats.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.ExplainStats"};return ExplainStats}();v1.Firestore=function(){function Firestore(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited)}(Firestore.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=Firestore;Firestore.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited)};Object.defineProperty(Firestore.prototype.getDocument=function getDocument(request,callback){return this.rpcCall(getDocument,$root.google.firestore.v1.GetDocumentRequest,$root.google.firestore.v1.Document,request,callback)},"name",{value:"GetDocument"});Object.defineProperty(Firestore.prototype.listDocuments=function listDocuments(request,callback){return this.rpcCall(listDocuments,$root.google.firestore.v1.ListDocumentsRequest,$root.google.firestore.v1.ListDocumentsResponse,request,callback)},"name",{value:"ListDocuments"});Object.defineProperty(Firestore.prototype.updateDocument=function updateDocument(request,callback){return this.rpcCall(updateDocument,$root.google.firestore.v1.UpdateDocumentRequest,$root.google.firestore.v1.Document,request,callback)},"name",{value:"UpdateDocument"});Object.defineProperty(Firestore.prototype.deleteDocument=function deleteDocument(request,callback){return this.rpcCall(deleteDocument,$root.google.firestore.v1.DeleteDocumentRequest,$root.google.protobuf.Empty,request,callback)},"name",{value:"DeleteDocument"});Object.defineProperty(Firestore.prototype.batchGetDocuments=function batchGetDocuments(request,callback){return this.rpcCall(batchGetDocuments,$root.google.firestore.v1.BatchGetDocumentsRequest,$root.google.firestore.v1.BatchGetDocumentsResponse,request,callback)},"name",{value:"BatchGetDocuments"});Object.defineProperty(Firestore.prototype.beginTransaction=function beginTransaction(request,callback){return this.rpcCall(beginTransaction,$root.google.firestore.v1.BeginTransactionRequest,$root.google.firestore.v1.BeginTransactionResponse,request,callback)},"name",{value:"BeginTransaction"});Object.defineProperty(Firestore.prototype.commit=function commit(request,callback){return this.rpcCall(commit,$root.google.firestore.v1.CommitRequest,$root.google.firestore.v1.CommitResponse,request,callback)},"name",{value:"Commit"});Object.defineProperty(Firestore.prototype.rollback=function rollback(request,callback){return this.rpcCall(rollback,$root.google.firestore.v1.RollbackRequest,$root.google.protobuf.Empty,request,callback)},"name",{value:"Rollback"});Object.defineProperty(Firestore.prototype.runQuery=function runQuery(request,callback){return this.rpcCall(runQuery,$root.google.firestore.v1.RunQueryRequest,$root.google.firestore.v1.RunQueryResponse,request,callback)},"name",{value:"RunQuery"});Object.defineProperty(Firestore.prototype.executePipeline=function executePipeline(request,callback){return this.rpcCall(executePipeline,$root.google.firestore.v1.ExecutePipelineRequest,$root.google.firestore.v1.ExecutePipelineResponse,request,callback)},"name",{value:"ExecutePipeline"});Object.defineProperty(Firestore.prototype.runAggregationQuery=function runAggregationQuery(request,callback){return this.rpcCall(runAggregationQuery,$root.google.firestore.v1.RunAggregationQueryRequest,$root.google.firestore.v1.RunAggregationQueryResponse,request,callback)},"name",{value:"RunAggregationQuery"});Object.defineProperty(Firestore.prototype.partitionQuery=function partitionQuery(request,callback){return this.rpcCall(partitionQuery,$root.google.firestore.v1.PartitionQueryRequest,$root.google.firestore.v1.PartitionQueryResponse,request,callback)},"name",{value:"PartitionQuery"});Object.defineProperty(Firestore.prototype.write=function write(request,callback){return this.rpcCall(write,$root.google.firestore.v1.WriteRequest,$root.google.firestore.v1.WriteResponse,request,callback)},"name",{value:"Write"});Object.defineProperty(Firestore.prototype.listen=function listen(request,callback){return this.rpcCall(listen,$root.google.firestore.v1.ListenRequest,$root.google.firestore.v1.ListenResponse,request,callback)},"name",{value:"Listen"});Object.defineProperty(Firestore.prototype.listCollectionIds=function listCollectionIds(request,callback){return this.rpcCall(listCollectionIds,$root.google.firestore.v1.ListCollectionIdsRequest,$root.google.firestore.v1.ListCollectionIdsResponse,request,callback)},"name",{value:"ListCollectionIds"});Object.defineProperty(Firestore.prototype.batchWrite=function batchWrite(request,callback){return this.rpcCall(batchWrite,$root.google.firestore.v1.BatchWriteRequest,$root.google.firestore.v1.BatchWriteResponse,request,callback)},"name",{value:"BatchWrite"});Object.defineProperty(Firestore.prototype.createDocument=function createDocument(request,callback){return this.rpcCall(createDocument,$root.google.firestore.v1.CreateDocumentRequest,$root.google.firestore.v1.Document,request,callback)},"name",{value:"CreateDocument"});return Firestore}();v1.GetDocumentRequest=function(){function GetDocumentRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.GetDocumentRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{message.mask=$root.google.firestore.v1.DocumentMask.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.transaction=reader.bytes();break}case 5:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};GetDocumentRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GetDocumentRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.mask!=null&&message.hasOwnProperty("mask")){var error=$root.google.firestore.v1.DocumentMask.verify(message.mask,long+1);if(error)return"mask."+error}if(message.transaction!=null&&message.hasOwnProperty("transaction")){properties.consistencySelector=1;if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected"}if(message.readTime!=null&&message.hasOwnProperty("readTime")){if(properties.consistencySelector===1)return"consistencySelector: multiple values";properties.consistencySelector=1;{var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}}return null};GetDocumentRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.GetDocumentRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.GetDocumentRequest;if(object.name!=null)message.name=String(object.name);if(object.mask!=null){if(typeof object.mask!=="object")throw TypeError(".google.firestore.v1.GetDocumentRequest.mask: object expected");message.mask=$root.google.firestore.v1.DocumentMask.fromObject(object.mask,long+1)}if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.GetDocumentRequest.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}return message};GetDocumentRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.mask=null}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.mask!=null&&message.hasOwnProperty("mask"))object.mask=$root.google.firestore.v1.DocumentMask.toObject(message.mask,options);if(message.transaction!=null&&message.hasOwnProperty("transaction")){object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;if(options.oneofs)object.consistencySelector="transaction"}if(message.readTime!=null&&message.hasOwnProperty("readTime")){object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(options.oneofs)object.consistencySelector="readTime"}return object};GetDocumentRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GetDocumentRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.GetDocumentRequest"};return GetDocumentRequest}();v1.ListDocumentsRequest=function(){function ListDocumentsRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ListDocumentsRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.collectionId=reader.string();break}case 3:{message.pageSize=reader.int32();break}case 4:{message.pageToken=reader.string();break}case 6:{message.orderBy=reader.string();break}case 7:{message.mask=$root.google.firestore.v1.DocumentMask.decode(reader,reader.uint32(),undefined,long+1);break}case 8:{message.transaction=reader.bytes();break}case 10:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 12:{message.showMissing=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};ListDocumentsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListDocumentsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.collectionId!=null&&message.hasOwnProperty("collectionId"))if(!$util.isString(message.collectionId))return"collectionId: string expected";if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))if(!$util.isInteger(message.pageSize))return"pageSize: integer expected";if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))if(!$util.isString(message.pageToken))return"pageToken: string expected";if(message.orderBy!=null&&message.hasOwnProperty("orderBy"))if(!$util.isString(message.orderBy))return"orderBy: string expected";if(message.mask!=null&&message.hasOwnProperty("mask")){var error=$root.google.firestore.v1.DocumentMask.verify(message.mask,long+1);if(error)return"mask."+error}if(message.transaction!=null&&message.hasOwnProperty("transaction")){properties.consistencySelector=1;if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected"}if(message.readTime!=null&&message.hasOwnProperty("readTime")){if(properties.consistencySelector===1)return"consistencySelector: multiple values";properties.consistencySelector=1;{var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}}if(message.showMissing!=null&&message.hasOwnProperty("showMissing"))if(typeof message.showMissing!=="boolean")return"showMissing: boolean expected";return null};ListDocumentsRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.ListDocumentsRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ListDocumentsRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.collectionId!=null)message.collectionId=String(object.collectionId);if(object.pageSize!=null)message.pageSize=object.pageSize|0;if(object.pageToken!=null)message.pageToken=String(object.pageToken);if(object.orderBy!=null)message.orderBy=String(object.orderBy);if(object.mask!=null){if(typeof object.mask!=="object")throw TypeError(".google.firestore.v1.ListDocumentsRequest.mask: object expected");message.mask=$root.google.firestore.v1.DocumentMask.fromObject(object.mask,long+1)}if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.ListDocumentsRequest.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}if(object.showMissing!=null)message.showMissing=Boolean(object.showMissing);return message};ListDocumentsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.collectionId="";object.pageSize=0;object.pageToken="";object.orderBy="";object.mask=null;object.showMissing=false}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.collectionId!=null&&message.hasOwnProperty("collectionId"))object.collectionId=message.collectionId;if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))object.pageSize=message.pageSize;if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))object.pageToken=message.pageToken;if(message.orderBy!=null&&message.hasOwnProperty("orderBy"))object.orderBy=message.orderBy;if(message.mask!=null&&message.hasOwnProperty("mask"))object.mask=$root.google.firestore.v1.DocumentMask.toObject(message.mask,options);if(message.transaction!=null&&message.hasOwnProperty("transaction")){object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;if(options.oneofs)object.consistencySelector="transaction"}if(message.readTime!=null&&message.hasOwnProperty("readTime")){object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(options.oneofs)object.consistencySelector="readTime"}if(message.showMissing!=null&&message.hasOwnProperty("showMissing"))object.showMissing=message.showMissing;return object};ListDocumentsRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ListDocumentsRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.ListDocumentsRequest"};return ListDocumentsRequest}();v1.ListDocumentsResponse=function(){function ListDocumentsResponse(properties){this.documents=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ListDocumentsResponse;while(reader.pos>>3){case 1:{if(!(message.documents&&message.documents.length))message.documents=[];message.documents.push($root.google.firestore.v1.Document.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.nextPageToken=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ListDocumentsResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListDocumentsResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.documents!=null&&message.hasOwnProperty("documents")){if(!Array.isArray(message.documents))return"documents: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ListDocumentsResponse;if(object.documents){if(!Array.isArray(object.documents))throw TypeError(".google.firestore.v1.ListDocumentsResponse.documents: array expected");message.documents=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.CreateDocumentRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.collectionId=reader.string();break}case 3:{message.documentId=reader.string();break}case 4:{message.document=$root.google.firestore.v1.Document.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.mask=$root.google.firestore.v1.DocumentMask.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};CreateDocumentRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CreateDocumentRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.collectionId!=null&&message.hasOwnProperty("collectionId"))if(!$util.isString(message.collectionId))return"collectionId: string expected";if(message.documentId!=null&&message.hasOwnProperty("documentId"))if(!$util.isString(message.documentId))return"documentId: string expected";if(message.document!=null&&message.hasOwnProperty("document")){var error=$root.google.firestore.v1.Document.verify(message.document,long+1);if(error)return"document."+error}if(message.mask!=null&&message.hasOwnProperty("mask")){var error=$root.google.firestore.v1.DocumentMask.verify(message.mask,long+1);if(error)return"mask."+error}return null};CreateDocumentRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.CreateDocumentRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.CreateDocumentRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.collectionId!=null)message.collectionId=String(object.collectionId);if(object.documentId!=null)message.documentId=String(object.documentId);if(object.document!=null){if(typeof object.document!=="object")throw TypeError(".google.firestore.v1.CreateDocumentRequest.document: object expected");message.document=$root.google.firestore.v1.Document.fromObject(object.document,long+1)}if(object.mask!=null){if(typeof object.mask!=="object")throw TypeError(".google.firestore.v1.CreateDocumentRequest.mask: object expected");message.mask=$root.google.firestore.v1.DocumentMask.fromObject(object.mask,long+1)}return message};CreateDocumentRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.collectionId="";object.documentId="";object.document=null;object.mask=null}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.collectionId!=null&&message.hasOwnProperty("collectionId"))object.collectionId=message.collectionId;if(message.documentId!=null&&message.hasOwnProperty("documentId"))object.documentId=message.documentId;if(message.document!=null&&message.hasOwnProperty("document"))object.document=$root.google.firestore.v1.Document.toObject(message.document,options);if(message.mask!=null&&message.hasOwnProperty("mask"))object.mask=$root.google.firestore.v1.DocumentMask.toObject(message.mask,options);return object};CreateDocumentRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CreateDocumentRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.CreateDocumentRequest"};return CreateDocumentRequest}();v1.UpdateDocumentRequest=function(){function UpdateDocumentRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.UpdateDocumentRequest;while(reader.pos>>3){case 1:{message.document=$root.google.firestore.v1.Document.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.updateMask=$root.google.firestore.v1.DocumentMask.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.mask=$root.google.firestore.v1.DocumentMask.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.currentDocument=$root.google.firestore.v1.Precondition.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};UpdateDocumentRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UpdateDocumentRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.document!=null&&message.hasOwnProperty("document")){var error=$root.google.firestore.v1.Document.verify(message.document,long+1);if(error)return"document."+error}if(message.updateMask!=null&&message.hasOwnProperty("updateMask")){var error=$root.google.firestore.v1.DocumentMask.verify(message.updateMask,long+1);if(error)return"updateMask."+error}if(message.mask!=null&&message.hasOwnProperty("mask")){var error=$root.google.firestore.v1.DocumentMask.verify(message.mask,long+1);if(error)return"mask."+error}if(message.currentDocument!=null&&message.hasOwnProperty("currentDocument")){var error=$root.google.firestore.v1.Precondition.verify(message.currentDocument,long+1);if(error)return"currentDocument."+error}return null};UpdateDocumentRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.UpdateDocumentRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.UpdateDocumentRequest;if(object.document!=null){if(typeof object.document!=="object")throw TypeError(".google.firestore.v1.UpdateDocumentRequest.document: object expected");message.document=$root.google.firestore.v1.Document.fromObject(object.document,long+1)}if(object.updateMask!=null){if(typeof object.updateMask!=="object")throw TypeError(".google.firestore.v1.UpdateDocumentRequest.updateMask: object expected");message.updateMask=$root.google.firestore.v1.DocumentMask.fromObject(object.updateMask,long+1)}if(object.mask!=null){if(typeof object.mask!=="object")throw TypeError(".google.firestore.v1.UpdateDocumentRequest.mask: object expected");message.mask=$root.google.firestore.v1.DocumentMask.fromObject(object.mask,long+1)}if(object.currentDocument!=null){if(typeof object.currentDocument!=="object")throw TypeError(".google.firestore.v1.UpdateDocumentRequest.currentDocument: object expected");message.currentDocument=$root.google.firestore.v1.Precondition.fromObject(object.currentDocument,long+1)}return message};UpdateDocumentRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.document=null;object.updateMask=null;object.mask=null;object.currentDocument=null}if(message.document!=null&&message.hasOwnProperty("document"))object.document=$root.google.firestore.v1.Document.toObject(message.document,options);if(message.updateMask!=null&&message.hasOwnProperty("updateMask"))object.updateMask=$root.google.firestore.v1.DocumentMask.toObject(message.updateMask,options);if(message.mask!=null&&message.hasOwnProperty("mask"))object.mask=$root.google.firestore.v1.DocumentMask.toObject(message.mask,options);if(message.currentDocument!=null&&message.hasOwnProperty("currentDocument"))object.currentDocument=$root.google.firestore.v1.Precondition.toObject(message.currentDocument,options);return object};UpdateDocumentRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UpdateDocumentRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.UpdateDocumentRequest"};return UpdateDocumentRequest}();v1.DeleteDocumentRequest=function(){function DeleteDocumentRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.DeleteDocumentRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{message.currentDocument=$root.google.firestore.v1.Precondition.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};DeleteDocumentRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DeleteDocumentRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.currentDocument!=null&&message.hasOwnProperty("currentDocument")){var error=$root.google.firestore.v1.Precondition.verify(message.currentDocument,long+1);if(error)return"currentDocument."+error}return null};DeleteDocumentRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.DeleteDocumentRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.DeleteDocumentRequest;if(object.name!=null)message.name=String(object.name);if(object.currentDocument!=null){if(typeof object.currentDocument!=="object")throw TypeError(".google.firestore.v1.DeleteDocumentRequest.currentDocument: object expected");message.currentDocument=$root.google.firestore.v1.Precondition.fromObject(object.currentDocument,long+1)}return message};DeleteDocumentRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.currentDocument=null}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.currentDocument!=null&&message.hasOwnProperty("currentDocument"))object.currentDocument=$root.google.firestore.v1.Precondition.toObject(message.currentDocument,options);return object};DeleteDocumentRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DeleteDocumentRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.DeleteDocumentRequest"};return DeleteDocumentRequest}();v1.BatchGetDocumentsRequest=function(){function BatchGetDocumentsRequest(properties){this.documents=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.BatchGetDocumentsRequest;while(reader.pos>>3){case 1:{message.database=reader.string();break}case 2:{if(!(message.documents&&message.documents.length))message.documents=[];message.documents.push(reader.string());break}case 3:{message.mask=$root.google.firestore.v1.DocumentMask.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.transaction=reader.bytes();break}case 5:{message.newTransaction=$root.google.firestore.v1.TransactionOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};BatchGetDocumentsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BatchGetDocumentsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.documents!=null&&message.hasOwnProperty("documents")){if(!Array.isArray(message.documents))return"documents: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.BatchGetDocumentsRequest;if(object.database!=null)message.database=String(object.database);if(object.documents){if(!Array.isArray(object.documents))throw TypeError(".google.firestore.v1.BatchGetDocumentsRequest.documents: array expected");message.documents=[];for(var i=0;i=0)message.transaction=object.transaction;if(object.newTransaction!=null){if(typeof object.newTransaction!=="object")throw TypeError(".google.firestore.v1.BatchGetDocumentsRequest.newTransaction: object expected");message.newTransaction=$root.google.firestore.v1.TransactionOptions.fromObject(object.newTransaction,long+1)}if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.BatchGetDocumentsRequest.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}return message};BatchGetDocumentsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.documents=[];if(options.defaults){object.database="";object.mask=null}if(message.database!=null&&message.hasOwnProperty("database"))object.database=message.database;if(message.documents&&message.documents.length){object.documents=[];for(var j=0;j$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.BatchGetDocumentsResponse;while(reader.pos>>3){case 1:{message.found=$root.google.firestore.v1.Document.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.missing=reader.string();break}case 3:{message.transaction=reader.bytes();break}case 4:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};BatchGetDocumentsResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BatchGetDocumentsResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.found!=null&&message.hasOwnProperty("found")){properties.result=1;{var error=$root.google.firestore.v1.Document.verify(message.found,long+1);if(error)return"found."+error}}if(message.missing!=null&&message.hasOwnProperty("missing")){if(properties.result===1)return"result: multiple values";properties.result=1;if(!$util.isString(message.missing))return"missing: string expected"}if(message.transaction!=null&&message.hasOwnProperty("transaction"))if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected";if(message.readTime!=null&&message.hasOwnProperty("readTime")){var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}return null};BatchGetDocumentsResponse.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.BatchGetDocumentsResponse)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.BatchGetDocumentsResponse;if(object.found!=null){if(typeof object.found!=="object")throw TypeError(".google.firestore.v1.BatchGetDocumentsResponse.found: object expected");message.found=$root.google.firestore.v1.Document.fromObject(object.found,long+1)}if(object.missing!=null)message.missing=String(object.missing);if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.BatchGetDocumentsResponse.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}return message};BatchGetDocumentsResponse.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){if(options.bytes===String)object.transaction="";else{object.transaction=[];if(options.bytes!==Array)object.transaction=$util.newBuffer(object.transaction)}object.readTime=null}if(message.found!=null&&message.hasOwnProperty("found")){object.found=$root.google.firestore.v1.Document.toObject(message.found,options);if(options.oneofs)object.result="found"}if(message.missing!=null&&message.hasOwnProperty("missing")){object.missing=message.missing;if(options.oneofs)object.result="missing"}if(message.transaction!=null&&message.hasOwnProperty("transaction"))object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;if(message.readTime!=null&&message.hasOwnProperty("readTime"))object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);return object};BatchGetDocumentsResponse.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BatchGetDocumentsResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.BatchGetDocumentsResponse"};return BatchGetDocumentsResponse}();v1.BeginTransactionRequest=function(){function BeginTransactionRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.BeginTransactionRequest;while(reader.pos>>3){case 1:{message.database=reader.string();break}case 2:{message.options=$root.google.firestore.v1.TransactionOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};BeginTransactionRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BeginTransactionRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.firestore.v1.TransactionOptions.verify(message.options,long+1);if(error)return"options."+error}return null};BeginTransactionRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.BeginTransactionRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.BeginTransactionRequest;if(object.database!=null)message.database=String(object.database);if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.firestore.v1.BeginTransactionRequest.options: object expected");message.options=$root.google.firestore.v1.TransactionOptions.fromObject(object.options,long+1)}return message};BeginTransactionRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.database="";object.options=null}if(message.database!=null&&message.hasOwnProperty("database"))object.database=message.database;if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.firestore.v1.TransactionOptions.toObject(message.options,options);return object};BeginTransactionRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BeginTransactionRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.BeginTransactionRequest"};return BeginTransactionRequest}();v1.BeginTransactionResponse=function(){function BeginTransactionResponse(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.BeginTransactionResponse;while(reader.pos>>3){case 1:{message.transaction=reader.bytes();break}default:reader.skipType(tag&7,long);break}}return message};BeginTransactionResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BeginTransactionResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.transaction!=null&&message.hasOwnProperty("transaction"))if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected";return null};BeginTransactionResponse.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.BeginTransactionResponse)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.BeginTransactionResponse;if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;return message};BeginTransactionResponse.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)if(options.bytes===String)object.transaction="";else{object.transaction=[];if(options.bytes!==Array)object.transaction=$util.newBuffer(object.transaction)}if(message.transaction!=null&&message.hasOwnProperty("transaction"))object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;return object};BeginTransactionResponse.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BeginTransactionResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.BeginTransactionResponse"};return BeginTransactionResponse}();v1.CommitRequest=function(){function CommitRequest(properties){this.writes=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.CommitRequest;while(reader.pos>>3){case 1:{message.database=reader.string();break}case 2:{if(!(message.writes&&message.writes.length))message.writes=[];message.writes.push($root.google.firestore.v1.Write.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{message.transaction=reader.bytes();break}default:reader.skipType(tag&7,long);break}}return message};CommitRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CommitRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.writes!=null&&message.hasOwnProperty("writes")){if(!Array.isArray(message.writes))return"writes: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.CommitRequest;if(object.database!=null)message.database=String(object.database);if(object.writes){if(!Array.isArray(object.writes))throw TypeError(".google.firestore.v1.CommitRequest.writes: array expected");message.writes=[];for(var i=0;i=0)message.transaction=object.transaction;return message};CommitRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.writes=[];if(options.defaults){object.database="";if(options.bytes===String)object.transaction="";else{object.transaction=[];if(options.bytes!==Array)object.transaction=$util.newBuffer(object.transaction)}}if(message.database!=null&&message.hasOwnProperty("database"))object.database=message.database;if(message.writes&&message.writes.length){object.writes=[];for(var j=0;j$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.CommitResponse;while(reader.pos>>3){case 1:{if(!(message.writeResults&&message.writeResults.length))message.writeResults=[];message.writeResults.push($root.google.firestore.v1.WriteResult.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.commitTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};CommitResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CommitResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.writeResults!=null&&message.hasOwnProperty("writeResults")){if(!Array.isArray(message.writeResults))return"writeResults: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.CommitResponse;if(object.writeResults){if(!Array.isArray(object.writeResults))throw TypeError(".google.firestore.v1.CommitResponse.writeResults: array expected");message.writeResults=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.RollbackRequest;while(reader.pos>>3){case 1:{message.database=reader.string();break}case 2:{message.transaction=reader.bytes();break}default:reader.skipType(tag&7,long);break}}return message};RollbackRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RollbackRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.transaction!=null&&message.hasOwnProperty("transaction"))if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected";return null};RollbackRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.RollbackRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.RollbackRequest;if(object.database!=null)message.database=String(object.database);if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;return message};RollbackRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.database="";if(options.bytes===String)object.transaction="";else{object.transaction=[];if(options.bytes!==Array)object.transaction=$util.newBuffer(object.transaction)}}if(message.database!=null&&message.hasOwnProperty("database"))object.database=message.database;if(message.transaction!=null&&message.hasOwnProperty("transaction"))object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;return object};RollbackRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RollbackRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.RollbackRequest"};return RollbackRequest}();v1.RunQueryRequest=function(){function RunQueryRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.RunQueryRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.structuredQuery=$root.google.firestore.v1.StructuredQuery.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.transaction=reader.bytes();break}case 6:{message.newTransaction=$root.google.firestore.v1.TransactionOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 10:{message.explainOptions=$root.google.firestore.v1.ExplainOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RunQueryRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RunQueryRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.structuredQuery!=null&&message.hasOwnProperty("structuredQuery")){properties.queryType=1;{var error=$root.google.firestore.v1.StructuredQuery.verify(message.structuredQuery,long+1);if(error)return"structuredQuery."+error}}if(message.transaction!=null&&message.hasOwnProperty("transaction")){properties.consistencySelector=1;if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected"}if(message.newTransaction!=null&&message.hasOwnProperty("newTransaction")){if(properties.consistencySelector===1)return"consistencySelector: multiple values";properties.consistencySelector=1;{var error=$root.google.firestore.v1.TransactionOptions.verify(message.newTransaction,long+1);if(error)return"newTransaction."+error}}if(message.readTime!=null&&message.hasOwnProperty("readTime")){if(properties.consistencySelector===1)return"consistencySelector: multiple values";properties.consistencySelector=1;{var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}}if(message.explainOptions!=null&&message.hasOwnProperty("explainOptions")){var error=$root.google.firestore.v1.ExplainOptions.verify(message.explainOptions,long+1);if(error)return"explainOptions."+error}return null};RunQueryRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.RunQueryRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.RunQueryRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.structuredQuery!=null){if(typeof object.structuredQuery!=="object")throw TypeError(".google.firestore.v1.RunQueryRequest.structuredQuery: object expected");message.structuredQuery=$root.google.firestore.v1.StructuredQuery.fromObject(object.structuredQuery,long+1)}if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;if(object.newTransaction!=null){if(typeof object.newTransaction!=="object")throw TypeError(".google.firestore.v1.RunQueryRequest.newTransaction: object expected");message.newTransaction=$root.google.firestore.v1.TransactionOptions.fromObject(object.newTransaction,long+1)}if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.RunQueryRequest.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}if(object.explainOptions!=null){if(typeof object.explainOptions!=="object")throw TypeError(".google.firestore.v1.RunQueryRequest.explainOptions: object expected");message.explainOptions=$root.google.firestore.v1.ExplainOptions.fromObject(object.explainOptions,long+1)}return message};RunQueryRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.explainOptions=null}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.structuredQuery!=null&&message.hasOwnProperty("structuredQuery")){object.structuredQuery=$root.google.firestore.v1.StructuredQuery.toObject(message.structuredQuery,options);if(options.oneofs)object.queryType="structuredQuery"}if(message.transaction!=null&&message.hasOwnProperty("transaction")){object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;if(options.oneofs)object.consistencySelector="transaction"}if(message.newTransaction!=null&&message.hasOwnProperty("newTransaction")){object.newTransaction=$root.google.firestore.v1.TransactionOptions.toObject(message.newTransaction,options);if(options.oneofs)object.consistencySelector="newTransaction"}if(message.readTime!=null&&message.hasOwnProperty("readTime")){object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(options.oneofs)object.consistencySelector="readTime"}if(message.explainOptions!=null&&message.hasOwnProperty("explainOptions"))object.explainOptions=$root.google.firestore.v1.ExplainOptions.toObject(message.explainOptions,options);return object};RunQueryRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RunQueryRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.RunQueryRequest"};return RunQueryRequest}();v1.RunQueryResponse=function(){function RunQueryResponse(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.RunQueryResponse;while(reader.pos>>3){case 2:{message.transaction=reader.bytes();break}case 1:{message.document=$root.google.firestore.v1.Document.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.skippedResults=reader.int32();break}case 6:{message.done=reader.bool();break}case 11:{message.explainMetrics=$root.google.firestore.v1.ExplainMetrics.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RunQueryResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RunQueryResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.transaction!=null&&message.hasOwnProperty("transaction"))if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected";if(message.document!=null&&message.hasOwnProperty("document")){var error=$root.google.firestore.v1.Document.verify(message.document,long+1);if(error)return"document."+error}if(message.readTime!=null&&message.hasOwnProperty("readTime")){var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}if(message.skippedResults!=null&&message.hasOwnProperty("skippedResults"))if(!$util.isInteger(message.skippedResults))return"skippedResults: integer expected";if(message.done!=null&&message.hasOwnProperty("done")){properties.continuationSelector=1;if(typeof message.done!=="boolean")return"done: boolean expected"}if(message.explainMetrics!=null&&message.hasOwnProperty("explainMetrics")){var error=$root.google.firestore.v1.ExplainMetrics.verify(message.explainMetrics,long+1);if(error)return"explainMetrics."+error}return null};RunQueryResponse.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.RunQueryResponse)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.RunQueryResponse;if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;if(object.document!=null){if(typeof object.document!=="object")throw TypeError(".google.firestore.v1.RunQueryResponse.document: object expected");message.document=$root.google.firestore.v1.Document.fromObject(object.document,long+1)}if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.RunQueryResponse.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}if(object.skippedResults!=null)message.skippedResults=object.skippedResults|0;if(object.done!=null)message.done=Boolean(object.done);if(object.explainMetrics!=null){if(typeof object.explainMetrics!=="object")throw TypeError(".google.firestore.v1.RunQueryResponse.explainMetrics: object expected");message.explainMetrics=$root.google.firestore.v1.ExplainMetrics.fromObject(object.explainMetrics,long+1)}return message};RunQueryResponse.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.document=null;if(options.bytes===String)object.transaction="";else{object.transaction=[];if(options.bytes!==Array)object.transaction=$util.newBuffer(object.transaction)}object.readTime=null;object.skippedResults=0;object.explainMetrics=null}if(message.document!=null&&message.hasOwnProperty("document"))object.document=$root.google.firestore.v1.Document.toObject(message.document,options);if(message.transaction!=null&&message.hasOwnProperty("transaction"))object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;if(message.readTime!=null&&message.hasOwnProperty("readTime"))object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(message.skippedResults!=null&&message.hasOwnProperty("skippedResults"))object.skippedResults=message.skippedResults;if(message.done!=null&&message.hasOwnProperty("done")){object.done=message.done;if(options.oneofs)object.continuationSelector="done"}if(message.explainMetrics!=null&&message.hasOwnProperty("explainMetrics"))object.explainMetrics=$root.google.firestore.v1.ExplainMetrics.toObject(message.explainMetrics,options);return object};RunQueryResponse.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RunQueryResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.RunQueryResponse"};return RunQueryResponse}();v1.ExecutePipelineRequest=function(){function ExecutePipelineRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ExecutePipelineRequest;while(reader.pos>>3){case 1:{message.database=reader.string();break}case 2:{message.structuredPipeline=$root.google.firestore.v1.StructuredPipeline.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.transaction=reader.bytes();break}case 6:{message.newTransaction=$root.google.firestore.v1.TransactionOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 9:{message.autoCommitTransaction=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};ExecutePipelineRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExecutePipelineRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.structuredPipeline!=null&&message.hasOwnProperty("structuredPipeline")){properties.pipelineType=1;{var error=$root.google.firestore.v1.StructuredPipeline.verify(message.structuredPipeline,long+1);if(error)return"structuredPipeline."+error}}if(message.transaction!=null&&message.hasOwnProperty("transaction")){properties.consistencySelector=1;if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected"}if(message.newTransaction!=null&&message.hasOwnProperty("newTransaction")){if(properties.consistencySelector===1)return"consistencySelector: multiple values";properties.consistencySelector=1;{var error=$root.google.firestore.v1.TransactionOptions.verify(message.newTransaction,long+1);if(error)return"newTransaction."+error}}if(message.readTime!=null&&message.hasOwnProperty("readTime")){if(properties.consistencySelector===1)return"consistencySelector: multiple values";properties.consistencySelector=1;{var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}}if(message.autoCommitTransaction!=null&&message.hasOwnProperty("autoCommitTransaction"))if(typeof message.autoCommitTransaction!=="boolean")return"autoCommitTransaction: boolean expected";return null};ExecutePipelineRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.ExecutePipelineRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ExecutePipelineRequest;if(object.database!=null)message.database=String(object.database);if(object.structuredPipeline!=null){if(typeof object.structuredPipeline!=="object")throw TypeError(".google.firestore.v1.ExecutePipelineRequest.structuredPipeline: object expected");message.structuredPipeline=$root.google.firestore.v1.StructuredPipeline.fromObject(object.structuredPipeline,long+1)}if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;if(object.newTransaction!=null){if(typeof object.newTransaction!=="object")throw TypeError(".google.firestore.v1.ExecutePipelineRequest.newTransaction: object expected");message.newTransaction=$root.google.firestore.v1.TransactionOptions.fromObject(object.newTransaction,long+1)}if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.ExecutePipelineRequest.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}if(object.autoCommitTransaction!=null)message.autoCommitTransaction=Boolean(object.autoCommitTransaction);return message};ExecutePipelineRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.database="";object.autoCommitTransaction=false}if(message.database!=null&&message.hasOwnProperty("database"))object.database=message.database;if(message.structuredPipeline!=null&&message.hasOwnProperty("structuredPipeline")){object.structuredPipeline=$root.google.firestore.v1.StructuredPipeline.toObject(message.structuredPipeline,options);if(options.oneofs)object.pipelineType="structuredPipeline"}if(message.transaction!=null&&message.hasOwnProperty("transaction")){object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;if(options.oneofs)object.consistencySelector="transaction"}if(message.newTransaction!=null&&message.hasOwnProperty("newTransaction")){object.newTransaction=$root.google.firestore.v1.TransactionOptions.toObject(message.newTransaction,options);if(options.oneofs)object.consistencySelector="newTransaction"}if(message.readTime!=null&&message.hasOwnProperty("readTime")){object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(options.oneofs)object.consistencySelector="readTime"}if(message.autoCommitTransaction!=null&&message.hasOwnProperty("autoCommitTransaction"))object.autoCommitTransaction=message.autoCommitTransaction;return object};ExecutePipelineRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ExecutePipelineRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.ExecutePipelineRequest"};return ExecutePipelineRequest}();v1.ExecutePipelineResponse=function(){function ExecutePipelineResponse(properties){this.results=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ExecutePipelineResponse;while(reader.pos>>3){case 1:{message.transaction=reader.bytes();break}case 2:{if(!(message.results&&message.results.length))message.results=[];message.results.push($root.google.firestore.v1.Document.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{message.executionTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.explainStats=$root.google.firestore.v1.ExplainStats.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ExecutePipelineResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExecutePipelineResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.transaction!=null&&message.hasOwnProperty("transaction"))if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected";if(message.results!=null&&message.hasOwnProperty("results")){if(!Array.isArray(message.results))return"results: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ExecutePipelineResponse;if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;if(object.results){if(!Array.isArray(object.results))throw TypeError(".google.firestore.v1.ExecutePipelineResponse.results: array expected");message.results=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.RunAggregationQueryRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.structuredAggregationQuery=$root.google.firestore.v1.StructuredAggregationQuery.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.transaction=reader.bytes();break}case 5:{message.newTransaction=$root.google.firestore.v1.TransactionOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 8:{message.explainOptions=$root.google.firestore.v1.ExplainOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RunAggregationQueryRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RunAggregationQueryRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.structuredAggregationQuery!=null&&message.hasOwnProperty("structuredAggregationQuery")){properties.queryType=1;{var error=$root.google.firestore.v1.StructuredAggregationQuery.verify(message.structuredAggregationQuery,long+1);if(error)return"structuredAggregationQuery."+error}}if(message.transaction!=null&&message.hasOwnProperty("transaction")){properties.consistencySelector=1;if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected"}if(message.newTransaction!=null&&message.hasOwnProperty("newTransaction")){if(properties.consistencySelector===1)return"consistencySelector: multiple values";properties.consistencySelector=1;{var error=$root.google.firestore.v1.TransactionOptions.verify(message.newTransaction,long+1);if(error)return"newTransaction."+error}}if(message.readTime!=null&&message.hasOwnProperty("readTime")){if(properties.consistencySelector===1)return"consistencySelector: multiple values";properties.consistencySelector=1;{var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}}if(message.explainOptions!=null&&message.hasOwnProperty("explainOptions")){var error=$root.google.firestore.v1.ExplainOptions.verify(message.explainOptions,long+1);if(error)return"explainOptions."+error}return null};RunAggregationQueryRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.RunAggregationQueryRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.RunAggregationQueryRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.structuredAggregationQuery!=null){if(typeof object.structuredAggregationQuery!=="object")throw TypeError(".google.firestore.v1.RunAggregationQueryRequest.structuredAggregationQuery: object expected");message.structuredAggregationQuery=$root.google.firestore.v1.StructuredAggregationQuery.fromObject(object.structuredAggregationQuery,long+1)}if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;if(object.newTransaction!=null){if(typeof object.newTransaction!=="object")throw TypeError(".google.firestore.v1.RunAggregationQueryRequest.newTransaction: object expected");message.newTransaction=$root.google.firestore.v1.TransactionOptions.fromObject(object.newTransaction,long+1)}if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.RunAggregationQueryRequest.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}if(object.explainOptions!=null){if(typeof object.explainOptions!=="object")throw TypeError(".google.firestore.v1.RunAggregationQueryRequest.explainOptions: object expected");message.explainOptions=$root.google.firestore.v1.ExplainOptions.fromObject(object.explainOptions,long+1)}return message};RunAggregationQueryRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.explainOptions=null}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.structuredAggregationQuery!=null&&message.hasOwnProperty("structuredAggregationQuery")){object.structuredAggregationQuery=$root.google.firestore.v1.StructuredAggregationQuery.toObject(message.structuredAggregationQuery,options);if(options.oneofs)object.queryType="structuredAggregationQuery"}if(message.transaction!=null&&message.hasOwnProperty("transaction")){object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;if(options.oneofs)object.consistencySelector="transaction"}if(message.newTransaction!=null&&message.hasOwnProperty("newTransaction")){object.newTransaction=$root.google.firestore.v1.TransactionOptions.toObject(message.newTransaction,options);if(options.oneofs)object.consistencySelector="newTransaction"}if(message.readTime!=null&&message.hasOwnProperty("readTime")){object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(options.oneofs)object.consistencySelector="readTime"}if(message.explainOptions!=null&&message.hasOwnProperty("explainOptions"))object.explainOptions=$root.google.firestore.v1.ExplainOptions.toObject(message.explainOptions,options);return object};RunAggregationQueryRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RunAggregationQueryRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.RunAggregationQueryRequest"};return RunAggregationQueryRequest}();v1.RunAggregationQueryResponse=function(){function RunAggregationQueryResponse(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.RunAggregationQueryResponse;while(reader.pos>>3){case 1:{message.result=$root.google.firestore.v1.AggregationResult.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.transaction=reader.bytes();break}case 3:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 10:{message.explainMetrics=$root.google.firestore.v1.ExplainMetrics.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RunAggregationQueryResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RunAggregationQueryResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.result!=null&&message.hasOwnProperty("result")){var error=$root.google.firestore.v1.AggregationResult.verify(message.result,long+1);if(error)return"result."+error}if(message.transaction!=null&&message.hasOwnProperty("transaction"))if(!(message.transaction&&typeof message.transaction.length==="number"||$util.isString(message.transaction)))return"transaction: buffer expected";if(message.readTime!=null&&message.hasOwnProperty("readTime")){var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}if(message.explainMetrics!=null&&message.hasOwnProperty("explainMetrics")){var error=$root.google.firestore.v1.ExplainMetrics.verify(message.explainMetrics,long+1);if(error)return"explainMetrics."+error}return null};RunAggregationQueryResponse.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.RunAggregationQueryResponse)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.RunAggregationQueryResponse;if(object.result!=null){if(typeof object.result!=="object")throw TypeError(".google.firestore.v1.RunAggregationQueryResponse.result: object expected");message.result=$root.google.firestore.v1.AggregationResult.fromObject(object.result,long+1)}if(object.transaction!=null)if(typeof object.transaction==="string")$util.base64.decode(object.transaction,message.transaction=$util.newBuffer($util.base64.length(object.transaction)),0);else if(object.transaction.length>=0)message.transaction=object.transaction;if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.RunAggregationQueryResponse.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}if(object.explainMetrics!=null){if(typeof object.explainMetrics!=="object")throw TypeError(".google.firestore.v1.RunAggregationQueryResponse.explainMetrics: object expected");message.explainMetrics=$root.google.firestore.v1.ExplainMetrics.fromObject(object.explainMetrics,long+1)}return message};RunAggregationQueryResponse.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.result=null;if(options.bytes===String)object.transaction="";else{object.transaction=[];if(options.bytes!==Array)object.transaction=$util.newBuffer(object.transaction)}object.readTime=null;object.explainMetrics=null}if(message.result!=null&&message.hasOwnProperty("result"))object.result=$root.google.firestore.v1.AggregationResult.toObject(message.result,options);if(message.transaction!=null&&message.hasOwnProperty("transaction"))object.transaction=options.bytes===String?$util.base64.encode(message.transaction,0,message.transaction.length):options.bytes===Array?Array.prototype.slice.call(message.transaction):message.transaction;if(message.readTime!=null&&message.hasOwnProperty("readTime"))object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(message.explainMetrics!=null&&message.hasOwnProperty("explainMetrics"))object.explainMetrics=$root.google.firestore.v1.ExplainMetrics.toObject(message.explainMetrics,options);return object};RunAggregationQueryResponse.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RunAggregationQueryResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.RunAggregationQueryResponse"};return RunAggregationQueryResponse}();v1.PartitionQueryRequest=function(){function PartitionQueryRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.PartitionQueryRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.structuredQuery=$root.google.firestore.v1.StructuredQuery.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.partitionCount=reader.int64();break}case 4:{message.pageToken=reader.string();break}case 5:{message.pageSize=reader.int32();break}case 6:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};PartitionQueryRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};PartitionQueryRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.structuredQuery!=null&&message.hasOwnProperty("structuredQuery")){properties.queryType=1;{var error=$root.google.firestore.v1.StructuredQuery.verify(message.structuredQuery,long+1);if(error)return"structuredQuery."+error}}if(message.partitionCount!=null&&message.hasOwnProperty("partitionCount"))if(!$util.isInteger(message.partitionCount)&&!(message.partitionCount&&$util.isInteger(message.partitionCount.low)&&$util.isInteger(message.partitionCount.high)))return"partitionCount: integer|Long expected";if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))if(!$util.isString(message.pageToken))return"pageToken: string expected";if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))if(!$util.isInteger(message.pageSize))return"pageSize: integer expected";if(message.readTime!=null&&message.hasOwnProperty("readTime")){properties.consistencySelector=1;{var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}}return null};PartitionQueryRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.PartitionQueryRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.PartitionQueryRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.structuredQuery!=null){if(typeof object.structuredQuery!=="object")throw TypeError(".google.firestore.v1.PartitionQueryRequest.structuredQuery: object expected");message.structuredQuery=$root.google.firestore.v1.StructuredQuery.fromObject(object.structuredQuery,long+1)}if(object.partitionCount!=null)if($util.Long)(message.partitionCount=$util.Long.fromValue(object.partitionCount)).unsigned=false;else if(typeof object.partitionCount==="string")message.partitionCount=parseInt(object.partitionCount,10);else if(typeof object.partitionCount==="number")message.partitionCount=object.partitionCount;else if(typeof object.partitionCount==="object")message.partitionCount=new $util.LongBits(object.partitionCount.low>>>0,object.partitionCount.high>>>0).toNumber();if(object.pageToken!=null)message.pageToken=String(object.pageToken);if(object.pageSize!=null)message.pageSize=object.pageSize|0;if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.PartitionQueryRequest.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}return message};PartitionQueryRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";if($util.Long){var long=new $util.Long(0,0,false);object.partitionCount=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.partitionCount=options.longs===String?"0":0;object.pageToken="";object.pageSize=0}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.structuredQuery!=null&&message.hasOwnProperty("structuredQuery")){object.structuredQuery=$root.google.firestore.v1.StructuredQuery.toObject(message.structuredQuery,options);if(options.oneofs)object.queryType="structuredQuery"}if(message.partitionCount!=null&&message.hasOwnProperty("partitionCount"))if(typeof message.partitionCount==="number")object.partitionCount=options.longs===String?String(message.partitionCount):message.partitionCount;else object.partitionCount=options.longs===String?$util.Long.prototype.toString.call(message.partitionCount):options.longs===Number?new $util.LongBits(message.partitionCount.low>>>0,message.partitionCount.high>>>0).toNumber():message.partitionCount;if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))object.pageToken=message.pageToken;if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))object.pageSize=message.pageSize;if(message.readTime!=null&&message.hasOwnProperty("readTime")){object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(options.oneofs)object.consistencySelector="readTime"}return object};PartitionQueryRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};PartitionQueryRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.PartitionQueryRequest"};return PartitionQueryRequest}();v1.PartitionQueryResponse=function(){function PartitionQueryResponse(properties){this.partitions=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.PartitionQueryResponse;while(reader.pos>>3){case 1:{if(!(message.partitions&&message.partitions.length))message.partitions=[];message.partitions.push($root.google.firestore.v1.Cursor.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.nextPageToken=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};PartitionQueryResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};PartitionQueryResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.partitions!=null&&message.hasOwnProperty("partitions")){if(!Array.isArray(message.partitions))return"partitions: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.PartitionQueryResponse;if(object.partitions){if(!Array.isArray(object.partitions))throw TypeError(".google.firestore.v1.PartitionQueryResponse.partitions: array expected");message.partitions=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.WriteRequest,key,value;while(reader.pos>>3){case 1:{message.database=reader.string();break}case 2:{message.streamId=reader.string();break}case 3:{if(!(message.writes&&message.writes.length))message.writes=[];message.writes.push($root.google.firestore.v1.Write.decode(reader,reader.uint32(),undefined,long+1));break}case 4:{message.streamToken=reader.bytes();break}case 5:{if(message.labels===$util.emptyObject)message.labels={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.labels,key);message.labels[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};WriteRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};WriteRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.streamId!=null&&message.hasOwnProperty("streamId"))if(!$util.isString(message.streamId))return"streamId: string expected";if(message.writes!=null&&message.hasOwnProperty("writes")){if(!Array.isArray(message.writes))return"writes: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.WriteRequest;if(object.database!=null)message.database=String(object.database);if(object.streamId!=null)message.streamId=String(object.streamId);if(object.writes){if(!Array.isArray(object.writes))throw TypeError(".google.firestore.v1.WriteRequest.writes: array expected");message.writes=[];for(var i=0;i=0)message.streamToken=object.streamToken;if(object.labels){if(typeof object.labels!=="object")throw TypeError(".google.firestore.v1.WriteRequest.labels: object expected");message.labels={};for(var keys=Object.keys(object.labels),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.WriteResponse;while(reader.pos>>3){case 1:{message.streamId=reader.string();break}case 2:{message.streamToken=reader.bytes();break}case 3:{if(!(message.writeResults&&message.writeResults.length))message.writeResults=[];message.writeResults.push($root.google.firestore.v1.WriteResult.decode(reader,reader.uint32(),undefined,long+1));break}case 4:{message.commitTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};WriteResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};WriteResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.streamId!=null&&message.hasOwnProperty("streamId"))if(!$util.isString(message.streamId))return"streamId: string expected";if(message.streamToken!=null&&message.hasOwnProperty("streamToken"))if(!(message.streamToken&&typeof message.streamToken.length==="number"||$util.isString(message.streamToken)))return"streamToken: buffer expected";if(message.writeResults!=null&&message.hasOwnProperty("writeResults")){if(!Array.isArray(message.writeResults))return"writeResults: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.WriteResponse;if(object.streamId!=null)message.streamId=String(object.streamId);if(object.streamToken!=null)if(typeof object.streamToken==="string")$util.base64.decode(object.streamToken,message.streamToken=$util.newBuffer($util.base64.length(object.streamToken)),0);else if(object.streamToken.length>=0)message.streamToken=object.streamToken;if(object.writeResults){if(!Array.isArray(object.writeResults))throw TypeError(".google.firestore.v1.WriteResponse.writeResults: array expected");message.writeResults=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ListenRequest,key,value;while(reader.pos>>3){case 1:{message.database=reader.string();break}case 2:{message.addTarget=$root.google.firestore.v1.Target.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.removeTarget=reader.int32();break}case 4:{if(message.labels===$util.emptyObject)message.labels={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.labels,key);message.labels[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};ListenRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListenRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.addTarget!=null&&message.hasOwnProperty("addTarget")){properties.targetChange=1;{var error=$root.google.firestore.v1.Target.verify(message.addTarget,long+1);if(error)return"addTarget."+error}}if(message.removeTarget!=null&&message.hasOwnProperty("removeTarget")){if(properties.targetChange===1)return"targetChange: multiple values";properties.targetChange=1;if(!$util.isInteger(message.removeTarget))return"removeTarget: integer expected"}if(message.labels!=null&&message.hasOwnProperty("labels")){if(!$util.isObject(message.labels))return"labels: object expected";var key=Object.keys(message.labels);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ListenRequest;if(object.database!=null)message.database=String(object.database);if(object.addTarget!=null){if(typeof object.addTarget!=="object")throw TypeError(".google.firestore.v1.ListenRequest.addTarget: object expected");message.addTarget=$root.google.firestore.v1.Target.fromObject(object.addTarget,long+1)}if(object.removeTarget!=null)message.removeTarget=object.removeTarget|0;if(object.labels){if(typeof object.labels!=="object")throw TypeError(".google.firestore.v1.ListenRequest.labels: object expected");message.labels={};for(var keys=Object.keys(object.labels),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ListenResponse;while(reader.pos>>3){case 2:{message.targetChange=$root.google.firestore.v1.TargetChange.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.documentChange=$root.google.firestore.v1.DocumentChange.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.documentDelete=$root.google.firestore.v1.DocumentDelete.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.documentRemove=$root.google.firestore.v1.DocumentRemove.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.filter=$root.google.firestore.v1.ExistenceFilter.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ListenResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListenResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.targetChange!=null&&message.hasOwnProperty("targetChange")){properties.responseType=1;{var error=$root.google.firestore.v1.TargetChange.verify(message.targetChange,long+1);if(error)return"targetChange."+error}}if(message.documentChange!=null&&message.hasOwnProperty("documentChange")){if(properties.responseType===1)return"responseType: multiple values";properties.responseType=1;{var error=$root.google.firestore.v1.DocumentChange.verify(message.documentChange,long+1);if(error)return"documentChange."+error}}if(message.documentDelete!=null&&message.hasOwnProperty("documentDelete")){if(properties.responseType===1)return"responseType: multiple values";properties.responseType=1;{var error=$root.google.firestore.v1.DocumentDelete.verify(message.documentDelete,long+1);if(error)return"documentDelete."+error}}if(message.documentRemove!=null&&message.hasOwnProperty("documentRemove")){if(properties.responseType===1)return"responseType: multiple values";properties.responseType=1;{var error=$root.google.firestore.v1.DocumentRemove.verify(message.documentRemove,long+1);if(error)return"documentRemove."+error}}if(message.filter!=null&&message.hasOwnProperty("filter")){if(properties.responseType===1)return"responseType: multiple values";properties.responseType=1;{var error=$root.google.firestore.v1.ExistenceFilter.verify(message.filter,long+1);if(error)return"filter."+error}}return null};ListenResponse.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.ListenResponse)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ListenResponse;if(object.targetChange!=null){if(typeof object.targetChange!=="object")throw TypeError(".google.firestore.v1.ListenResponse.targetChange: object expected");message.targetChange=$root.google.firestore.v1.TargetChange.fromObject(object.targetChange,long+1)}if(object.documentChange!=null){if(typeof object.documentChange!=="object")throw TypeError(".google.firestore.v1.ListenResponse.documentChange: object expected");message.documentChange=$root.google.firestore.v1.DocumentChange.fromObject(object.documentChange,long+1)}if(object.documentDelete!=null){if(typeof object.documentDelete!=="object")throw TypeError(".google.firestore.v1.ListenResponse.documentDelete: object expected");message.documentDelete=$root.google.firestore.v1.DocumentDelete.fromObject(object.documentDelete,long+1)}if(object.documentRemove!=null){if(typeof object.documentRemove!=="object")throw TypeError(".google.firestore.v1.ListenResponse.documentRemove: object expected");message.documentRemove=$root.google.firestore.v1.DocumentRemove.fromObject(object.documentRemove,long+1)}if(object.filter!=null){if(typeof object.filter!=="object")throw TypeError(".google.firestore.v1.ListenResponse.filter: object expected");message.filter=$root.google.firestore.v1.ExistenceFilter.fromObject(object.filter,long+1)}return message};ListenResponse.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.targetChange!=null&&message.hasOwnProperty("targetChange")){object.targetChange=$root.google.firestore.v1.TargetChange.toObject(message.targetChange,options);if(options.oneofs)object.responseType="targetChange"}if(message.documentChange!=null&&message.hasOwnProperty("documentChange")){object.documentChange=$root.google.firestore.v1.DocumentChange.toObject(message.documentChange,options);if(options.oneofs)object.responseType="documentChange"}if(message.documentDelete!=null&&message.hasOwnProperty("documentDelete")){object.documentDelete=$root.google.firestore.v1.DocumentDelete.toObject(message.documentDelete,options);if(options.oneofs)object.responseType="documentDelete"}if(message.filter!=null&&message.hasOwnProperty("filter")){object.filter=$root.google.firestore.v1.ExistenceFilter.toObject(message.filter,options);if(options.oneofs)object.responseType="filter"}if(message.documentRemove!=null&&message.hasOwnProperty("documentRemove")){object.documentRemove=$root.google.firestore.v1.DocumentRemove.toObject(message.documentRemove,options);if(options.oneofs)object.responseType="documentRemove"}return object};ListenResponse.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ListenResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.ListenResponse"};return ListenResponse}();v1.Target=function(){function Target(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.Target;while(reader.pos>>3){case 2:{message.query=$root.google.firestore.v1.Target.QueryTarget.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.documents=$root.google.firestore.v1.Target.DocumentsTarget.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.resumeToken=reader.bytes();break}case 11:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.targetId=reader.int32();break}case 6:{message.once=reader.bool();break}case 12:{message.expectedCount=$root.google.protobuf.Int32Value.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Target.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Target.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.query!=null&&message.hasOwnProperty("query")){properties.targetType=1;{var error=$root.google.firestore.v1.Target.QueryTarget.verify(message.query,long+1);if(error)return"query."+error}}if(message.documents!=null&&message.hasOwnProperty("documents")){if(properties.targetType===1)return"targetType: multiple values";properties.targetType=1;{var error=$root.google.firestore.v1.Target.DocumentsTarget.verify(message.documents,long+1);if(error)return"documents."+error}}if(message.resumeToken!=null&&message.hasOwnProperty("resumeToken")){properties.resumeType=1;if(!(message.resumeToken&&typeof message.resumeToken.length==="number"||$util.isString(message.resumeToken)))return"resumeToken: buffer expected"}if(message.readTime!=null&&message.hasOwnProperty("readTime")){if(properties.resumeType===1)return"resumeType: multiple values";properties.resumeType=1;{var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}}if(message.targetId!=null&&message.hasOwnProperty("targetId"))if(!$util.isInteger(message.targetId))return"targetId: integer expected";if(message.once!=null&&message.hasOwnProperty("once"))if(typeof message.once!=="boolean")return"once: boolean expected";if(message.expectedCount!=null&&message.hasOwnProperty("expectedCount")){var error=$root.google.protobuf.Int32Value.verify(message.expectedCount,long+1);if(error)return"expectedCount."+error}return null};Target.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.Target)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.Target;if(object.query!=null){if(typeof object.query!=="object")throw TypeError(".google.firestore.v1.Target.query: object expected");message.query=$root.google.firestore.v1.Target.QueryTarget.fromObject(object.query,long+1)}if(object.documents!=null){if(typeof object.documents!=="object")throw TypeError(".google.firestore.v1.Target.documents: object expected");message.documents=$root.google.firestore.v1.Target.DocumentsTarget.fromObject(object.documents,long+1)}if(object.resumeToken!=null)if(typeof object.resumeToken==="string")$util.base64.decode(object.resumeToken,message.resumeToken=$util.newBuffer($util.base64.length(object.resumeToken)),0);else if(object.resumeToken.length>=0)message.resumeToken=object.resumeToken;if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.Target.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}if(object.targetId!=null)message.targetId=object.targetId|0;if(object.once!=null)message.once=Boolean(object.once);if(object.expectedCount!=null){if(typeof object.expectedCount!=="object")throw TypeError(".google.firestore.v1.Target.expectedCount: object expected");message.expectedCount=$root.google.protobuf.Int32Value.fromObject(object.expectedCount,long+1)}return message};Target.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.targetId=0;object.once=false;object.expectedCount=null}if(message.query!=null&&message.hasOwnProperty("query")){object.query=$root.google.firestore.v1.Target.QueryTarget.toObject(message.query,options);if(options.oneofs)object.targetType="query"}if(message.documents!=null&&message.hasOwnProperty("documents")){object.documents=$root.google.firestore.v1.Target.DocumentsTarget.toObject(message.documents,options);if(options.oneofs)object.targetType="documents"}if(message.resumeToken!=null&&message.hasOwnProperty("resumeToken")){object.resumeToken=options.bytes===String?$util.base64.encode(message.resumeToken,0,message.resumeToken.length):options.bytes===Array?Array.prototype.slice.call(message.resumeToken):message.resumeToken;if(options.oneofs)object.resumeType="resumeToken"}if(message.targetId!=null&&message.hasOwnProperty("targetId"))object.targetId=message.targetId;if(message.once!=null&&message.hasOwnProperty("once"))object.once=message.once;if(message.readTime!=null&&message.hasOwnProperty("readTime")){object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(options.oneofs)object.resumeType="readTime"}if(message.expectedCount!=null&&message.hasOwnProperty("expectedCount"))object.expectedCount=$root.google.protobuf.Int32Value.toObject(message.expectedCount,options);return object};Target.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Target.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.Target"};Target.DocumentsTarget=function(){function DocumentsTarget(properties){this.documents=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.Target.DocumentsTarget;while(reader.pos>>3){case 2:{if(!(message.documents&&message.documents.length))message.documents=[];message.documents.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};DocumentsTarget.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DocumentsTarget.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.documents!=null&&message.hasOwnProperty("documents")){if(!Array.isArray(message.documents))return"documents: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.Target.DocumentsTarget;if(object.documents){if(!Array.isArray(object.documents))throw TypeError(".google.firestore.v1.Target.DocumentsTarget.documents: array expected");message.documents=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.Target.QueryTarget;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.structuredQuery=$root.google.firestore.v1.StructuredQuery.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};QueryTarget.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};QueryTarget.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.structuredQuery!=null&&message.hasOwnProperty("structuredQuery")){properties.queryType=1;{var error=$root.google.firestore.v1.StructuredQuery.verify(message.structuredQuery,long+1);if(error)return"structuredQuery."+error}}return null};QueryTarget.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.Target.QueryTarget)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.Target.QueryTarget;if(object.parent!=null)message.parent=String(object.parent);if(object.structuredQuery!=null){if(typeof object.structuredQuery!=="object")throw TypeError(".google.firestore.v1.Target.QueryTarget.structuredQuery: object expected");message.structuredQuery=$root.google.firestore.v1.StructuredQuery.fromObject(object.structuredQuery,long+1)}return message};QueryTarget.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.parent="";if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.structuredQuery!=null&&message.hasOwnProperty("structuredQuery")){object.structuredQuery=$root.google.firestore.v1.StructuredQuery.toObject(message.structuredQuery,options);if(options.oneofs)object.queryType="structuredQuery"}return object};QueryTarget.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};QueryTarget.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.Target.QueryTarget"};return QueryTarget}();return Target}();v1.TargetChange=function(){function TargetChange(properties){this.targetIds=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.TargetChange;while(reader.pos>>3){case 1:{message.targetChangeType=reader.int32();break}case 2:{if(!(message.targetIds&&message.targetIds.length))message.targetIds=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos$util.recursionLimit)return"maximum nesting depth exceeded";if(message.targetChangeType!=null&&message.hasOwnProperty("targetChangeType"))switch(message.targetChangeType){default:return"targetChangeType: enum value expected";case 0:case 1:case 2:case 3:case 4:break}if(message.targetIds!=null&&message.hasOwnProperty("targetIds")){if(!Array.isArray(message.targetIds))return"targetIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.TargetChange;switch(object.targetChangeType){default:if(typeof object.targetChangeType==="number"){message.targetChangeType=object.targetChangeType;break}break;case"NO_CHANGE":case 0:message.targetChangeType=0;break;case"ADD":case 1:message.targetChangeType=1;break;case"REMOVE":case 2:message.targetChangeType=2;break;case"CURRENT":case 3:message.targetChangeType=3;break;case"RESET":case 4:message.targetChangeType=4;break}if(object.targetIds){if(!Array.isArray(object.targetIds))throw TypeError(".google.firestore.v1.TargetChange.targetIds: array expected");message.targetIds=[];for(var i=0;i=0)message.resumeToken=object.resumeToken;if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.TargetChange.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}return message};TargetChange.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.targetIds=[];if(options.defaults){object.targetChangeType=options.enums===String?"NO_CHANGE":0;object.cause=null;if(options.bytes===String)object.resumeToken="";else{object.resumeToken=[];if(options.bytes!==Array)object.resumeToken=$util.newBuffer(object.resumeToken)}object.readTime=null}if(message.targetChangeType!=null&&message.hasOwnProperty("targetChangeType"))object.targetChangeType=options.enums===String?$root.google.firestore.v1.TargetChange.TargetChangeType[message.targetChangeType]===undefined?message.targetChangeType:$root.google.firestore.v1.TargetChange.TargetChangeType[message.targetChangeType]:message.targetChangeType;if(message.targetIds&&message.targetIds.length){object.targetIds=[];for(var j=0;j$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ListCollectionIdsRequest;while(reader.pos>>3){case 1:{message.parent=reader.string();break}case 2:{message.pageSize=reader.int32();break}case 3:{message.pageToken=reader.string();break}case 4:{message.readTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ListCollectionIdsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListCollectionIdsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.parent!=null&&message.hasOwnProperty("parent"))if(!$util.isString(message.parent))return"parent: string expected";if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))if(!$util.isInteger(message.pageSize))return"pageSize: integer expected";if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))if(!$util.isString(message.pageToken))return"pageToken: string expected";if(message.readTime!=null&&message.hasOwnProperty("readTime")){properties.consistencySelector=1;{var error=$root.google.protobuf.Timestamp.verify(message.readTime,long+1);if(error)return"readTime."+error}}return null};ListCollectionIdsRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.ListCollectionIdsRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ListCollectionIdsRequest;if(object.parent!=null)message.parent=String(object.parent);if(object.pageSize!=null)message.pageSize=object.pageSize|0;if(object.pageToken!=null)message.pageToken=String(object.pageToken);if(object.readTime!=null){if(typeof object.readTime!=="object")throw TypeError(".google.firestore.v1.ListCollectionIdsRequest.readTime: object expected");message.readTime=$root.google.protobuf.Timestamp.fromObject(object.readTime,long+1)}return message};ListCollectionIdsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.parent="";object.pageSize=0;object.pageToken=""}if(message.parent!=null&&message.hasOwnProperty("parent"))object.parent=message.parent;if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))object.pageSize=message.pageSize;if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))object.pageToken=message.pageToken;if(message.readTime!=null&&message.hasOwnProperty("readTime")){object.readTime=$root.google.protobuf.Timestamp.toObject(message.readTime,options);if(options.oneofs)object.consistencySelector="readTime"}return object};ListCollectionIdsRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ListCollectionIdsRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.ListCollectionIdsRequest"};return ListCollectionIdsRequest}();v1.ListCollectionIdsResponse=function(){function ListCollectionIdsResponse(properties){this.collectionIds=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ListCollectionIdsResponse;while(reader.pos>>3){case 1:{if(!(message.collectionIds&&message.collectionIds.length))message.collectionIds=[];message.collectionIds.push(reader.string());break}case 2:{message.nextPageToken=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ListCollectionIdsResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListCollectionIdsResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.collectionIds!=null&&message.hasOwnProperty("collectionIds")){if(!Array.isArray(message.collectionIds))return"collectionIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ListCollectionIdsResponse;if(object.collectionIds){if(!Array.isArray(object.collectionIds))throw TypeError(".google.firestore.v1.ListCollectionIdsResponse.collectionIds: array expected");message.collectionIds=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.BatchWriteRequest,key,value;while(reader.pos>>3){case 1:{message.database=reader.string();break}case 2:{if(!(message.writes&&message.writes.length))message.writes=[];message.writes.push($root.google.firestore.v1.Write.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{if(message.labels===$util.emptyObject)message.labels={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.labels,key);message.labels[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};BatchWriteRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BatchWriteRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.database!=null&&message.hasOwnProperty("database"))if(!$util.isString(message.database))return"database: string expected";if(message.writes!=null&&message.hasOwnProperty("writes")){if(!Array.isArray(message.writes))return"writes: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.BatchWriteRequest;if(object.database!=null)message.database=String(object.database);if(object.writes){if(!Array.isArray(object.writes))throw TypeError(".google.firestore.v1.BatchWriteRequest.writes: array expected");message.writes=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.BatchWriteResponse;while(reader.pos>>3){case 1:{if(!(message.writeResults&&message.writeResults.length))message.writeResults=[];message.writeResults.push($root.google.firestore.v1.WriteResult.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{if(!(message.status&&message.status.length))message.status=[];message.status.push($root.google.rpc.Status.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};BatchWriteResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BatchWriteResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.writeResults!=null&&message.hasOwnProperty("writeResults")){if(!Array.isArray(message.writeResults))return"writeResults: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.BatchWriteResponse;if(object.writeResults){if(!Array.isArray(object.writeResults))throw TypeError(".google.firestore.v1.BatchWriteResponse.writeResults: array expected");message.writeResults=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredPipeline,key,value;while(reader.pos>>3){case 1:{message.pipeline=$root.google.firestore.v1.Pipeline.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{if(message.options===$util.emptyObject)message.options={};var end2=reader.uint32()+reader.pos;key="";value=null;while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=$root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1);break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.options,key);message.options[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};StructuredPipeline.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};StructuredPipeline.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.pipeline!=null&&message.hasOwnProperty("pipeline")){var error=$root.google.firestore.v1.Pipeline.verify(message.pipeline,long+1);if(error)return"pipeline."+error}if(message.options!=null&&message.hasOwnProperty("options")){if(!$util.isObject(message.options))return"options: object expected";var key=Object.keys(message.options);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredPipeline;if(object.pipeline!=null){if(typeof object.pipeline!=="object")throw TypeError(".google.firestore.v1.StructuredPipeline.pipeline: object expected");message.pipeline=$root.google.firestore.v1.Pipeline.fromObject(object.pipeline,long+1)}if(object.options){if(typeof object.options!=="object")throw TypeError(".google.firestore.v1.StructuredPipeline.options: object expected");message.options={};for(var keys=Object.keys(object.options),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredQuery;while(reader.pos>>3){case 1:{message.select=$root.google.firestore.v1.StructuredQuery.Projection.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{if(!(message.from&&message.from.length))message.from=[];message.from.push($root.google.firestore.v1.StructuredQuery.CollectionSelector.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{message.where=$root.google.firestore.v1.StructuredQuery.Filter.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{if(!(message.orderBy&&message.orderBy.length))message.orderBy=[];message.orderBy.push($root.google.firestore.v1.StructuredQuery.Order.decode(reader,reader.uint32(),undefined,long+1));break}case 7:{message.startAt=$root.google.firestore.v1.Cursor.decode(reader,reader.uint32(),undefined,long+1);break}case 8:{message.endAt=$root.google.firestore.v1.Cursor.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.offset=reader.int32();break}case 5:{message.limit=$root.google.protobuf.Int32Value.decode(reader,reader.uint32(),undefined,long+1);break}case 9:{message.findNearest=$root.google.firestore.v1.StructuredQuery.FindNearest.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};StructuredQuery.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};StructuredQuery.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.select!=null&&message.hasOwnProperty("select")){var error=$root.google.firestore.v1.StructuredQuery.Projection.verify(message.select,long+1);if(error)return"select."+error}if(message.from!=null&&message.hasOwnProperty("from")){if(!Array.isArray(message.from))return"from: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredQuery;if(object.select!=null){if(typeof object.select!=="object")throw TypeError(".google.firestore.v1.StructuredQuery.select: object expected");message.select=$root.google.firestore.v1.StructuredQuery.Projection.fromObject(object.select,long+1)}if(object.from){if(!Array.isArray(object.from))throw TypeError(".google.firestore.v1.StructuredQuery.from: array expected");message.from=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredQuery.CollectionSelector;while(reader.pos>>3){case 2:{message.collectionId=reader.string();break}case 3:{message.allDescendants=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};CollectionSelector.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CollectionSelector.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.collectionId!=null&&message.hasOwnProperty("collectionId"))if(!$util.isString(message.collectionId))return"collectionId: string expected";if(message.allDescendants!=null&&message.hasOwnProperty("allDescendants"))if(typeof message.allDescendants!=="boolean")return"allDescendants: boolean expected";return null};CollectionSelector.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.StructuredQuery.CollectionSelector)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredQuery.CollectionSelector;if(object.collectionId!=null)message.collectionId=String(object.collectionId);if(object.allDescendants!=null)message.allDescendants=Boolean(object.allDescendants);return message};CollectionSelector.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.collectionId="";object.allDescendants=false}if(message.collectionId!=null&&message.hasOwnProperty("collectionId"))object.collectionId=message.collectionId;if(message.allDescendants!=null&&message.hasOwnProperty("allDescendants"))object.allDescendants=message.allDescendants;return object};CollectionSelector.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CollectionSelector.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.StructuredQuery.CollectionSelector"};return CollectionSelector}();StructuredQuery.Filter=function(){function Filter(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredQuery.Filter;while(reader.pos>>3){case 1:{message.compositeFilter=$root.google.firestore.v1.StructuredQuery.CompositeFilter.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.fieldFilter=$root.google.firestore.v1.StructuredQuery.FieldFilter.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.unaryFilter=$root.google.firestore.v1.StructuredQuery.UnaryFilter.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Filter.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Filter.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.compositeFilter!=null&&message.hasOwnProperty("compositeFilter")){properties.filterType=1;{var error=$root.google.firestore.v1.StructuredQuery.CompositeFilter.verify(message.compositeFilter,long+1);if(error)return"compositeFilter."+error}}if(message.fieldFilter!=null&&message.hasOwnProperty("fieldFilter")){if(properties.filterType===1)return"filterType: multiple values";properties.filterType=1;{var error=$root.google.firestore.v1.StructuredQuery.FieldFilter.verify(message.fieldFilter,long+1);if(error)return"fieldFilter."+error}}if(message.unaryFilter!=null&&message.hasOwnProperty("unaryFilter")){if(properties.filterType===1)return"filterType: multiple values";properties.filterType=1;{var error=$root.google.firestore.v1.StructuredQuery.UnaryFilter.verify(message.unaryFilter,long+1);if(error)return"unaryFilter."+error}}return null};Filter.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.StructuredQuery.Filter)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredQuery.Filter;if(object.compositeFilter!=null){if(typeof object.compositeFilter!=="object")throw TypeError(".google.firestore.v1.StructuredQuery.Filter.compositeFilter: object expected");message.compositeFilter=$root.google.firestore.v1.StructuredQuery.CompositeFilter.fromObject(object.compositeFilter,long+1)}if(object.fieldFilter!=null){if(typeof object.fieldFilter!=="object")throw TypeError(".google.firestore.v1.StructuredQuery.Filter.fieldFilter: object expected");message.fieldFilter=$root.google.firestore.v1.StructuredQuery.FieldFilter.fromObject(object.fieldFilter,long+1)}if(object.unaryFilter!=null){if(typeof object.unaryFilter!=="object")throw TypeError(".google.firestore.v1.StructuredQuery.Filter.unaryFilter: object expected");message.unaryFilter=$root.google.firestore.v1.StructuredQuery.UnaryFilter.fromObject(object.unaryFilter,long+1)}return message};Filter.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.compositeFilter!=null&&message.hasOwnProperty("compositeFilter")){object.compositeFilter=$root.google.firestore.v1.StructuredQuery.CompositeFilter.toObject(message.compositeFilter,options);if(options.oneofs)object.filterType="compositeFilter"}if(message.fieldFilter!=null&&message.hasOwnProperty("fieldFilter")){object.fieldFilter=$root.google.firestore.v1.StructuredQuery.FieldFilter.toObject(message.fieldFilter,options);if(options.oneofs)object.filterType="fieldFilter"}if(message.unaryFilter!=null&&message.hasOwnProperty("unaryFilter")){object.unaryFilter=$root.google.firestore.v1.StructuredQuery.UnaryFilter.toObject(message.unaryFilter,options);if(options.oneofs)object.filterType="unaryFilter"}return object};Filter.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Filter.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.StructuredQuery.Filter"};return Filter}();StructuredQuery.CompositeFilter=function(){function CompositeFilter(properties){this.filters=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredQuery.CompositeFilter;while(reader.pos>>3){case 1:{message.op=reader.int32();break}case 2:{if(!(message.filters&&message.filters.length))message.filters=[];message.filters.push($root.google.firestore.v1.StructuredQuery.Filter.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};CompositeFilter.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CompositeFilter.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.op!=null&&message.hasOwnProperty("op"))switch(message.op){default:return"op: enum value expected";case 0:case 1:case 2:break}if(message.filters!=null&&message.hasOwnProperty("filters")){if(!Array.isArray(message.filters))return"filters: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredQuery.CompositeFilter;switch(object.op){default:if(typeof object.op==="number"){message.op=object.op;break}break;case"OPERATOR_UNSPECIFIED":case 0:message.op=0;break;case"AND":case 1:message.op=1;break;case"OR":case 2:message.op=2;break}if(object.filters){if(!Array.isArray(object.filters))throw TypeError(".google.firestore.v1.StructuredQuery.CompositeFilter.filters: array expected");message.filters=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredQuery.FieldFilter;while(reader.pos>>3){case 1:{message.field=$root.google.firestore.v1.StructuredQuery.FieldReference.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.op=reader.int32();break}case 3:{message.value=$root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};FieldFilter.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FieldFilter.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.field!=null&&message.hasOwnProperty("field")){var error=$root.google.firestore.v1.StructuredQuery.FieldReference.verify(message.field,long+1);if(error)return"field."+error}if(message.op!=null&&message.hasOwnProperty("op"))switch(message.op){default:return"op: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:break}if(message.value!=null&&message.hasOwnProperty("value")){var error=$root.google.firestore.v1.Value.verify(message.value,long+1);if(error)return"value."+error}return null};FieldFilter.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.StructuredQuery.FieldFilter)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredQuery.FieldFilter;if(object.field!=null){if(typeof object.field!=="object")throw TypeError(".google.firestore.v1.StructuredQuery.FieldFilter.field: object expected");message.field=$root.google.firestore.v1.StructuredQuery.FieldReference.fromObject(object.field,long+1)}switch(object.op){default:if(typeof object.op==="number"){message.op=object.op;break}break;case"OPERATOR_UNSPECIFIED":case 0:message.op=0;break;case"LESS_THAN":case 1:message.op=1;break;case"LESS_THAN_OR_EQUAL":case 2:message.op=2;break;case"GREATER_THAN":case 3:message.op=3;break;case"GREATER_THAN_OR_EQUAL":case 4:message.op=4;break;case"EQUAL":case 5:message.op=5;break;case"NOT_EQUAL":case 6:message.op=6;break;case"ARRAY_CONTAINS":case 7:message.op=7;break;case"IN":case 8:message.op=8;break;case"ARRAY_CONTAINS_ANY":case 9:message.op=9;break;case"NOT_IN":case 10:message.op=10;break}if(object.value!=null){if(typeof object.value!=="object")throw TypeError(".google.firestore.v1.StructuredQuery.FieldFilter.value: object expected");message.value=$root.google.firestore.v1.Value.fromObject(object.value,long+1)}return message};FieldFilter.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.field=null;object.op=options.enums===String?"OPERATOR_UNSPECIFIED":0;object.value=null}if(message.field!=null&&message.hasOwnProperty("field"))object.field=$root.google.firestore.v1.StructuredQuery.FieldReference.toObject(message.field,options);if(message.op!=null&&message.hasOwnProperty("op"))object.op=options.enums===String?$root.google.firestore.v1.StructuredQuery.FieldFilter.Operator[message.op]===undefined?message.op:$root.google.firestore.v1.StructuredQuery.FieldFilter.Operator[message.op]:message.op;if(message.value!=null&&message.hasOwnProperty("value"))object.value=$root.google.firestore.v1.Value.toObject(message.value,options);return object};FieldFilter.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FieldFilter.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.StructuredQuery.FieldFilter"};FieldFilter.Operator=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="OPERATOR_UNSPECIFIED"]=0;values[valuesById[1]="LESS_THAN"]=1;values[valuesById[2]="LESS_THAN_OR_EQUAL"]=2;values[valuesById[3]="GREATER_THAN"]=3;values[valuesById[4]="GREATER_THAN_OR_EQUAL"]=4;values[valuesById[5]="EQUAL"]=5;values[valuesById[6]="NOT_EQUAL"]=6;values[valuesById[7]="ARRAY_CONTAINS"]=7;values[valuesById[8]="IN"]=8;values[valuesById[9]="ARRAY_CONTAINS_ANY"]=9;values[valuesById[10]="NOT_IN"]=10;return values}();return FieldFilter}();StructuredQuery.UnaryFilter=function(){function UnaryFilter(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredQuery.UnaryFilter;while(reader.pos>>3){case 1:{message.op=reader.int32();break}case 2:{message.field=$root.google.firestore.v1.StructuredQuery.FieldReference.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};UnaryFilter.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UnaryFilter.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.op!=null&&message.hasOwnProperty("op"))switch(message.op){default:return"op: enum value expected";case 0:case 2:case 3:case 4:case 5:break}if(message.field!=null&&message.hasOwnProperty("field")){properties.operandType=1;{var error=$root.google.firestore.v1.StructuredQuery.FieldReference.verify(message.field,long+1);if(error)return"field."+error}}return null};UnaryFilter.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.StructuredQuery.UnaryFilter)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredQuery.UnaryFilter;switch(object.op){default:if(typeof object.op==="number"){message.op=object.op;break}break;case"OPERATOR_UNSPECIFIED":case 0:message.op=0;break;case"IS_NAN":case 2:message.op=2;break;case"IS_NULL":case 3:message.op=3;break;case"IS_NOT_NAN":case 4:message.op=4;break;case"IS_NOT_NULL":case 5:message.op=5;break}if(object.field!=null){if(typeof object.field!=="object")throw TypeError(".google.firestore.v1.StructuredQuery.UnaryFilter.field: object expected");message.field=$root.google.firestore.v1.StructuredQuery.FieldReference.fromObject(object.field,long+1)}return message};UnaryFilter.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.op=options.enums===String?"OPERATOR_UNSPECIFIED":0;if(message.op!=null&&message.hasOwnProperty("op"))object.op=options.enums===String?$root.google.firestore.v1.StructuredQuery.UnaryFilter.Operator[message.op]===undefined?message.op:$root.google.firestore.v1.StructuredQuery.UnaryFilter.Operator[message.op]:message.op;if(message.field!=null&&message.hasOwnProperty("field")){object.field=$root.google.firestore.v1.StructuredQuery.FieldReference.toObject(message.field,options);if(options.oneofs)object.operandType="field"}return object};UnaryFilter.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UnaryFilter.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.StructuredQuery.UnaryFilter"};UnaryFilter.Operator=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="OPERATOR_UNSPECIFIED"]=0;values[valuesById[2]="IS_NAN"]=2;values[valuesById[3]="IS_NULL"]=3;values[valuesById[4]="IS_NOT_NAN"]=4;values[valuesById[5]="IS_NOT_NULL"]=5;return values}();return UnaryFilter}();StructuredQuery.Order=function(){function Order(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredQuery.Order;while(reader.pos>>3){case 1:{message.field=$root.google.firestore.v1.StructuredQuery.FieldReference.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.direction=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};Order.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Order.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.field!=null&&message.hasOwnProperty("field")){var error=$root.google.firestore.v1.StructuredQuery.FieldReference.verify(message.field,long+1);if(error)return"field."+error}if(message.direction!=null&&message.hasOwnProperty("direction"))switch(message.direction){default:return"direction: enum value expected";case 0:case 1:case 2:break}return null};Order.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.StructuredQuery.Order)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredQuery.Order;if(object.field!=null){if(typeof object.field!=="object")throw TypeError(".google.firestore.v1.StructuredQuery.Order.field: object expected");message.field=$root.google.firestore.v1.StructuredQuery.FieldReference.fromObject(object.field,long+1)}switch(object.direction){default:if(typeof object.direction==="number"){message.direction=object.direction;break}break;case"DIRECTION_UNSPECIFIED":case 0:message.direction=0;break;case"ASCENDING":case 1:message.direction=1;break;case"DESCENDING":case 2:message.direction=2;break}return message};Order.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.field=null;object.direction=options.enums===String?"DIRECTION_UNSPECIFIED":0}if(message.field!=null&&message.hasOwnProperty("field"))object.field=$root.google.firestore.v1.StructuredQuery.FieldReference.toObject(message.field,options);if(message.direction!=null&&message.hasOwnProperty("direction"))object.direction=options.enums===String?$root.google.firestore.v1.StructuredQuery.Direction[message.direction]===undefined?message.direction:$root.google.firestore.v1.StructuredQuery.Direction[message.direction]:message.direction;return object};Order.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Order.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.StructuredQuery.Order"};return Order}();StructuredQuery.Direction=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="DIRECTION_UNSPECIFIED"]=0;values[valuesById[1]="ASCENDING"]=1;values[valuesById[2]="DESCENDING"]=2;return values}();StructuredQuery.FieldReference=function(){function FieldReference(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredQuery.FieldReference;while(reader.pos>>3){case 2:{message.fieldPath=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};FieldReference.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FieldReference.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.fieldPath!=null&&message.hasOwnProperty("fieldPath"))if(!$util.isString(message.fieldPath))return"fieldPath: string expected";return null};FieldReference.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.StructuredQuery.FieldReference)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredQuery.FieldReference;if(object.fieldPath!=null)message.fieldPath=String(object.fieldPath);return message};FieldReference.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.fieldPath="";if(message.fieldPath!=null&&message.hasOwnProperty("fieldPath"))object.fieldPath=message.fieldPath;return object};FieldReference.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FieldReference.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.StructuredQuery.FieldReference"};return FieldReference}();StructuredQuery.Projection=function(){function Projection(properties){this.fields=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredQuery.Projection;while(reader.pos>>3){case 2:{if(!(message.fields&&message.fields.length))message.fields=[];message.fields.push($root.google.firestore.v1.StructuredQuery.FieldReference.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};Projection.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Projection.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.fields!=null&&message.hasOwnProperty("fields")){if(!Array.isArray(message.fields))return"fields: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredQuery.Projection;if(object.fields){if(!Array.isArray(object.fields))throw TypeError(".google.firestore.v1.StructuredQuery.Projection.fields: array expected");message.fields=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredQuery.FindNearest;while(reader.pos>>3){case 1:{message.vectorField=$root.google.firestore.v1.StructuredQuery.FieldReference.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.queryVector=$root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.distanceMeasure=reader.int32();break}case 4:{message.limit=$root.google.protobuf.Int32Value.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.distanceResultField=reader.string();break}case 6:{message.distanceThreshold=$root.google.protobuf.DoubleValue.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};FindNearest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FindNearest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.vectorField!=null&&message.hasOwnProperty("vectorField")){var error=$root.google.firestore.v1.StructuredQuery.FieldReference.verify(message.vectorField,long+1);if(error)return"vectorField."+error}if(message.queryVector!=null&&message.hasOwnProperty("queryVector")){var error=$root.google.firestore.v1.Value.verify(message.queryVector,long+1);if(error)return"queryVector."+error}if(message.distanceMeasure!=null&&message.hasOwnProperty("distanceMeasure"))switch(message.distanceMeasure){default:return"distanceMeasure: enum value expected";case 0:case 1:case 2:case 3:break}if(message.limit!=null&&message.hasOwnProperty("limit")){var error=$root.google.protobuf.Int32Value.verify(message.limit,long+1);if(error)return"limit."+error}if(message.distanceResultField!=null&&message.hasOwnProperty("distanceResultField"))if(!$util.isString(message.distanceResultField))return"distanceResultField: string expected";if(message.distanceThreshold!=null&&message.hasOwnProperty("distanceThreshold")){var error=$root.google.protobuf.DoubleValue.verify(message.distanceThreshold,long+1);if(error)return"distanceThreshold."+error}return null};FindNearest.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.StructuredQuery.FindNearest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredQuery.FindNearest;if(object.vectorField!=null){if(typeof object.vectorField!=="object")throw TypeError(".google.firestore.v1.StructuredQuery.FindNearest.vectorField: object expected");message.vectorField=$root.google.firestore.v1.StructuredQuery.FieldReference.fromObject(object.vectorField,long+1)}if(object.queryVector!=null){if(typeof object.queryVector!=="object")throw TypeError(".google.firestore.v1.StructuredQuery.FindNearest.queryVector: object expected");message.queryVector=$root.google.firestore.v1.Value.fromObject(object.queryVector,long+1)}switch(object.distanceMeasure){default:if(typeof object.distanceMeasure==="number"){message.distanceMeasure=object.distanceMeasure;break}break;case"DISTANCE_MEASURE_UNSPECIFIED":case 0:message.distanceMeasure=0;break;case"EUCLIDEAN":case 1:message.distanceMeasure=1;break;case"COSINE":case 2:message.distanceMeasure=2;break;case"DOT_PRODUCT":case 3:message.distanceMeasure=3;break}if(object.limit!=null){if(typeof object.limit!=="object")throw TypeError(".google.firestore.v1.StructuredQuery.FindNearest.limit: object expected");message.limit=$root.google.protobuf.Int32Value.fromObject(object.limit,long+1)}if(object.distanceResultField!=null)message.distanceResultField=String(object.distanceResultField);if(object.distanceThreshold!=null){if(typeof object.distanceThreshold!=="object")throw TypeError(".google.firestore.v1.StructuredQuery.FindNearest.distanceThreshold: object expected");message.distanceThreshold=$root.google.protobuf.DoubleValue.fromObject(object.distanceThreshold,long+1)}return message};FindNearest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.vectorField=null;object.queryVector=null;object.distanceMeasure=options.enums===String?"DISTANCE_MEASURE_UNSPECIFIED":0;object.limit=null;object.distanceResultField="";object.distanceThreshold=null}if(message.vectorField!=null&&message.hasOwnProperty("vectorField"))object.vectorField=$root.google.firestore.v1.StructuredQuery.FieldReference.toObject(message.vectorField,options);if(message.queryVector!=null&&message.hasOwnProperty("queryVector"))object.queryVector=$root.google.firestore.v1.Value.toObject(message.queryVector,options);if(message.distanceMeasure!=null&&message.hasOwnProperty("distanceMeasure"))object.distanceMeasure=options.enums===String?$root.google.firestore.v1.StructuredQuery.FindNearest.DistanceMeasure[message.distanceMeasure]===undefined?message.distanceMeasure:$root.google.firestore.v1.StructuredQuery.FindNearest.DistanceMeasure[message.distanceMeasure]:message.distanceMeasure;if(message.limit!=null&&message.hasOwnProperty("limit"))object.limit=$root.google.protobuf.Int32Value.toObject(message.limit,options);if(message.distanceResultField!=null&&message.hasOwnProperty("distanceResultField"))object.distanceResultField=message.distanceResultField;if(message.distanceThreshold!=null&&message.hasOwnProperty("distanceThreshold"))object.distanceThreshold=$root.google.protobuf.DoubleValue.toObject(message.distanceThreshold,options);return object};FindNearest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FindNearest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.StructuredQuery.FindNearest"};FindNearest.DistanceMeasure=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="DISTANCE_MEASURE_UNSPECIFIED"]=0;values[valuesById[1]="EUCLIDEAN"]=1;values[valuesById[2]="COSINE"]=2;values[valuesById[3]="DOT_PRODUCT"]=3;return values}();return FindNearest}();return StructuredQuery}();v1.StructuredAggregationQuery=function(){function StructuredAggregationQuery(properties){this.aggregations=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredAggregationQuery;while(reader.pos>>3){case 1:{message.structuredQuery=$root.google.firestore.v1.StructuredQuery.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{if(!(message.aggregations&&message.aggregations.length))message.aggregations=[];message.aggregations.push($root.google.firestore.v1.StructuredAggregationQuery.Aggregation.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};StructuredAggregationQuery.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};StructuredAggregationQuery.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.structuredQuery!=null&&message.hasOwnProperty("structuredQuery")){properties.queryType=1;{var error=$root.google.firestore.v1.StructuredQuery.verify(message.structuredQuery,long+1);if(error)return"structuredQuery."+error}}if(message.aggregations!=null&&message.hasOwnProperty("aggregations")){if(!Array.isArray(message.aggregations))return"aggregations: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredAggregationQuery;if(object.structuredQuery!=null){if(typeof object.structuredQuery!=="object")throw TypeError(".google.firestore.v1.StructuredAggregationQuery.structuredQuery: object expected");message.structuredQuery=$root.google.firestore.v1.StructuredQuery.fromObject(object.structuredQuery,long+1)}if(object.aggregations){if(!Array.isArray(object.aggregations))throw TypeError(".google.firestore.v1.StructuredAggregationQuery.aggregations: array expected");message.aggregations=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredAggregationQuery.Aggregation;while(reader.pos>>3){case 1:{message.count=$root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Count.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.sum=$root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Sum.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.avg=$root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Avg.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.alias=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};Aggregation.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Aggregation.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.count!=null&&message.hasOwnProperty("count")){properties.operator=1;{var error=$root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Count.verify(message.count,long+1);if(error)return"count."+error}}if(message.sum!=null&&message.hasOwnProperty("sum")){if(properties.operator===1)return"operator: multiple values";properties.operator=1;{var error=$root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Sum.verify(message.sum,long+1);if(error)return"sum."+error}}if(message.avg!=null&&message.hasOwnProperty("avg")){if(properties.operator===1)return"operator: multiple values";properties.operator=1;{var error=$root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Avg.verify(message.avg,long+1);if(error)return"avg."+error}}if(message.alias!=null&&message.hasOwnProperty("alias"))if(!$util.isString(message.alias))return"alias: string expected";return null};Aggregation.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.StructuredAggregationQuery.Aggregation)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredAggregationQuery.Aggregation;if(object.count!=null){if(typeof object.count!=="object")throw TypeError(".google.firestore.v1.StructuredAggregationQuery.Aggregation.count: object expected");message.count=$root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Count.fromObject(object.count,long+1)}if(object.sum!=null){if(typeof object.sum!=="object")throw TypeError(".google.firestore.v1.StructuredAggregationQuery.Aggregation.sum: object expected");message.sum=$root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Sum.fromObject(object.sum,long+1)}if(object.avg!=null){if(typeof object.avg!=="object")throw TypeError(".google.firestore.v1.StructuredAggregationQuery.Aggregation.avg: object expected");message.avg=$root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Avg.fromObject(object.avg,long+1)}if(object.alias!=null)message.alias=String(object.alias);return message};Aggregation.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.alias="";if(message.count!=null&&message.hasOwnProperty("count")){object.count=$root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Count.toObject(message.count,options);if(options.oneofs)object.operator="count"}if(message.sum!=null&&message.hasOwnProperty("sum")){object.sum=$root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Sum.toObject(message.sum,options);if(options.oneofs)object.operator="sum"}if(message.avg!=null&&message.hasOwnProperty("avg")){object.avg=$root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Avg.toObject(message.avg,options);if(options.oneofs)object.operator="avg"}if(message.alias!=null&&message.hasOwnProperty("alias"))object.alias=message.alias;return object};Aggregation.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Aggregation.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.StructuredAggregationQuery.Aggregation"};Aggregation.Count=function(){function Count(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Count;while(reader.pos>>3){case 1:{message.upTo=$root.google.protobuf.Int64Value.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Count.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Count.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.upTo!=null&&message.hasOwnProperty("upTo")){var error=$root.google.protobuf.Int64Value.verify(message.upTo,long+1);if(error)return"upTo."+error}return null};Count.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Count)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Count;if(object.upTo!=null){if(typeof object.upTo!=="object")throw TypeError(".google.firestore.v1.StructuredAggregationQuery.Aggregation.Count.upTo: object expected");message.upTo=$root.google.protobuf.Int64Value.fromObject(object.upTo,long+1)}return message};Count.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.upTo=null;if(message.upTo!=null&&message.hasOwnProperty("upTo"))object.upTo=$root.google.protobuf.Int64Value.toObject(message.upTo,options);return object};Count.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Count.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.StructuredAggregationQuery.Aggregation.Count"};return Count}();Aggregation.Sum=function(){function Sum(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Sum;while(reader.pos>>3){case 1:{message.field=$root.google.firestore.v1.StructuredQuery.FieldReference.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Sum.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Sum.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.field!=null&&message.hasOwnProperty("field")){var error=$root.google.firestore.v1.StructuredQuery.FieldReference.verify(message.field,long+1);if(error)return"field."+error}return null};Sum.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Sum)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Sum;if(object.field!=null){if(typeof object.field!=="object")throw TypeError(".google.firestore.v1.StructuredAggregationQuery.Aggregation.Sum.field: object expected");message.field=$root.google.firestore.v1.StructuredQuery.FieldReference.fromObject(object.field,long+1)}return message};Sum.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.field=null;if(message.field!=null&&message.hasOwnProperty("field"))object.field=$root.google.firestore.v1.StructuredQuery.FieldReference.toObject(message.field,options);return object};Sum.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Sum.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.StructuredAggregationQuery.Aggregation.Sum"};return Sum}();Aggregation.Avg=function(){function Avg(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Avg;while(reader.pos>>3){case 1:{message.field=$root.google.firestore.v1.StructuredQuery.FieldReference.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Avg.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Avg.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.field!=null&&message.hasOwnProperty("field")){var error=$root.google.firestore.v1.StructuredQuery.FieldReference.verify(message.field,long+1);if(error)return"field."+error}return null};Avg.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Avg)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.StructuredAggregationQuery.Aggregation.Avg;if(object.field!=null){if(typeof object.field!=="object")throw TypeError(".google.firestore.v1.StructuredAggregationQuery.Aggregation.Avg.field: object expected");message.field=$root.google.firestore.v1.StructuredQuery.FieldReference.fromObject(object.field,long+1)}return message};Avg.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.field=null;if(message.field!=null&&message.hasOwnProperty("field"))object.field=$root.google.firestore.v1.StructuredQuery.FieldReference.toObject(message.field,options);return object};Avg.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Avg.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.StructuredAggregationQuery.Aggregation.Avg"};return Avg}();return Aggregation}();return StructuredAggregationQuery}();v1.Cursor=function(){function Cursor(properties){this.values=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.Cursor;while(reader.pos>>3){case 1:{if(!(message.values&&message.values.length))message.values=[];message.values.push($root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.before=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};Cursor.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Cursor.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.values!=null&&message.hasOwnProperty("values")){if(!Array.isArray(message.values))return"values: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.Cursor;if(object.values){if(!Array.isArray(object.values))throw TypeError(".google.firestore.v1.Cursor.values: array expected");message.values=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ExplainOptions;while(reader.pos>>3){case 1:{message.analyze=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};ExplainOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExplainOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.analyze!=null&&message.hasOwnProperty("analyze"))if(typeof message.analyze!=="boolean")return"analyze: boolean expected";return null};ExplainOptions.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.ExplainOptions)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ExplainOptions;if(object.analyze!=null)message.analyze=Boolean(object.analyze);return message};ExplainOptions.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.analyze=false;if(message.analyze!=null&&message.hasOwnProperty("analyze"))object.analyze=message.analyze;return object};ExplainOptions.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ExplainOptions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.ExplainOptions"};return ExplainOptions}();v1.ExplainMetrics=function(){function ExplainMetrics(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ExplainMetrics;while(reader.pos>>3){case 1:{message.planSummary=$root.google.firestore.v1.PlanSummary.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.executionStats=$root.google.firestore.v1.ExecutionStats.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ExplainMetrics.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExplainMetrics.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.planSummary!=null&&message.hasOwnProperty("planSummary")){var error=$root.google.firestore.v1.PlanSummary.verify(message.planSummary,long+1);if(error)return"planSummary."+error}if(message.executionStats!=null&&message.hasOwnProperty("executionStats")){var error=$root.google.firestore.v1.ExecutionStats.verify(message.executionStats,long+1);if(error)return"executionStats."+error}return null};ExplainMetrics.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.ExplainMetrics)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ExplainMetrics;if(object.planSummary!=null){if(typeof object.planSummary!=="object")throw TypeError(".google.firestore.v1.ExplainMetrics.planSummary: object expected");message.planSummary=$root.google.firestore.v1.PlanSummary.fromObject(object.planSummary,long+1)}if(object.executionStats!=null){if(typeof object.executionStats!=="object")throw TypeError(".google.firestore.v1.ExplainMetrics.executionStats: object expected");message.executionStats=$root.google.firestore.v1.ExecutionStats.fromObject(object.executionStats,long+1)}return message};ExplainMetrics.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.planSummary=null;object.executionStats=null}if(message.planSummary!=null&&message.hasOwnProperty("planSummary"))object.planSummary=$root.google.firestore.v1.PlanSummary.toObject(message.planSummary,options);if(message.executionStats!=null&&message.hasOwnProperty("executionStats"))object.executionStats=$root.google.firestore.v1.ExecutionStats.toObject(message.executionStats,options);return object};ExplainMetrics.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ExplainMetrics.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.ExplainMetrics"};return ExplainMetrics}();v1.PlanSummary=function(){function PlanSummary(properties){this.indexesUsed=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.PlanSummary;while(reader.pos>>3){case 1:{if(!(message.indexesUsed&&message.indexesUsed.length))message.indexesUsed=[];message.indexesUsed.push($root.google.protobuf.Struct.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};PlanSummary.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};PlanSummary.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.indexesUsed!=null&&message.hasOwnProperty("indexesUsed")){if(!Array.isArray(message.indexesUsed))return"indexesUsed: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.PlanSummary;if(object.indexesUsed){if(!Array.isArray(object.indexesUsed))throw TypeError(".google.firestore.v1.PlanSummary.indexesUsed: array expected");message.indexesUsed=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ExecutionStats;while(reader.pos>>3){case 1:{message.resultsReturned=reader.int64();break}case 3:{message.executionDuration=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.readOperations=reader.int64();break}case 5:{message.debugStats=$root.google.protobuf.Struct.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ExecutionStats.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExecutionStats.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.resultsReturned!=null&&message.hasOwnProperty("resultsReturned"))if(!$util.isInteger(message.resultsReturned)&&!(message.resultsReturned&&$util.isInteger(message.resultsReturned.low)&&$util.isInteger(message.resultsReturned.high)))return"resultsReturned: integer|Long expected";if(message.executionDuration!=null&&message.hasOwnProperty("executionDuration")){var error=$root.google.protobuf.Duration.verify(message.executionDuration,long+1);if(error)return"executionDuration."+error}if(message.readOperations!=null&&message.hasOwnProperty("readOperations"))if(!$util.isInteger(message.readOperations)&&!(message.readOperations&&$util.isInteger(message.readOperations.low)&&$util.isInteger(message.readOperations.high)))return"readOperations: integer|Long expected";if(message.debugStats!=null&&message.hasOwnProperty("debugStats")){var error=$root.google.protobuf.Struct.verify(message.debugStats,long+1);if(error)return"debugStats."+error}return null};ExecutionStats.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.ExecutionStats)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ExecutionStats;if(object.resultsReturned!=null)if($util.Long)(message.resultsReturned=$util.Long.fromValue(object.resultsReturned)).unsigned=false;else if(typeof object.resultsReturned==="string")message.resultsReturned=parseInt(object.resultsReturned,10);else if(typeof object.resultsReturned==="number")message.resultsReturned=object.resultsReturned;else if(typeof object.resultsReturned==="object")message.resultsReturned=new $util.LongBits(object.resultsReturned.low>>>0,object.resultsReturned.high>>>0).toNumber();if(object.executionDuration!=null){if(typeof object.executionDuration!=="object")throw TypeError(".google.firestore.v1.ExecutionStats.executionDuration: object expected");message.executionDuration=$root.google.protobuf.Duration.fromObject(object.executionDuration,long+1)}if(object.readOperations!=null)if($util.Long)(message.readOperations=$util.Long.fromValue(object.readOperations)).unsigned=false;else if(typeof object.readOperations==="string")message.readOperations=parseInt(object.readOperations,10);else if(typeof object.readOperations==="number")message.readOperations=object.readOperations;else if(typeof object.readOperations==="object")message.readOperations=new $util.LongBits(object.readOperations.low>>>0,object.readOperations.high>>>0).toNumber();if(object.debugStats!=null){if(typeof object.debugStats!=="object")throw TypeError(".google.firestore.v1.ExecutionStats.debugStats: object expected");message.debugStats=$root.google.protobuf.Struct.fromObject(object.debugStats,long+1)}return message};ExecutionStats.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){if($util.Long){var long=new $util.Long(0,0,false);object.resultsReturned=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.resultsReturned=options.longs===String?"0":0;object.executionDuration=null;if($util.Long){var long=new $util.Long(0,0,false);object.readOperations=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.readOperations=options.longs===String?"0":0;object.debugStats=null}if(message.resultsReturned!=null&&message.hasOwnProperty("resultsReturned"))if(typeof message.resultsReturned==="number")object.resultsReturned=options.longs===String?String(message.resultsReturned):message.resultsReturned;else object.resultsReturned=options.longs===String?$util.Long.prototype.toString.call(message.resultsReturned):options.longs===Number?new $util.LongBits(message.resultsReturned.low>>>0,message.resultsReturned.high>>>0).toNumber():message.resultsReturned;if(message.executionDuration!=null&&message.hasOwnProperty("executionDuration"))object.executionDuration=$root.google.protobuf.Duration.toObject(message.executionDuration,options);if(message.readOperations!=null&&message.hasOwnProperty("readOperations"))if(typeof message.readOperations==="number")object.readOperations=options.longs===String?String(message.readOperations):message.readOperations;else object.readOperations=options.longs===String?$util.Long.prototype.toString.call(message.readOperations):options.longs===Number?new $util.LongBits(message.readOperations.low>>>0,message.readOperations.high>>>0).toNumber():message.readOperations;if(message.debugStats!=null&&message.hasOwnProperty("debugStats"))object.debugStats=$root.google.protobuf.Struct.toObject(message.debugStats,options);return object};ExecutionStats.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ExecutionStats.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.ExecutionStats"};return ExecutionStats}();v1.Write=function(){function Write(properties){this.updateTransforms=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.Write;while(reader.pos>>3){case 1:{message.update=$root.google.firestore.v1.Document.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message["delete"]=reader.string();break}case 6:{message.transform=$root.google.firestore.v1.DocumentTransform.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.updateMask=$root.google.firestore.v1.DocumentMask.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{if(!(message.updateTransforms&&message.updateTransforms.length))message.updateTransforms=[];message.updateTransforms.push($root.google.firestore.v1.DocumentTransform.FieldTransform.decode(reader,reader.uint32(),undefined,long+1));break}case 4:{message.currentDocument=$root.google.firestore.v1.Precondition.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Write.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Write.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.update!=null&&message.hasOwnProperty("update")){properties.operation=1;{var error=$root.google.firestore.v1.Document.verify(message.update,long+1);if(error)return"update."+error}}if(message["delete"]!=null&&message.hasOwnProperty("delete")){if(properties.operation===1)return"operation: multiple values";properties.operation=1;if(!$util.isString(message["delete"]))return"delete: string expected"}if(message.transform!=null&&message.hasOwnProperty("transform")){if(properties.operation===1)return"operation: multiple values";properties.operation=1;{var error=$root.google.firestore.v1.DocumentTransform.verify(message.transform,long+1);if(error)return"transform."+error}}if(message.updateMask!=null&&message.hasOwnProperty("updateMask")){var error=$root.google.firestore.v1.DocumentMask.verify(message.updateMask,long+1);if(error)return"updateMask."+error}if(message.updateTransforms!=null&&message.hasOwnProperty("updateTransforms")){if(!Array.isArray(message.updateTransforms))return"updateTransforms: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.Write;if(object.update!=null){if(typeof object.update!=="object")throw TypeError(".google.firestore.v1.Write.update: object expected");message.update=$root.google.firestore.v1.Document.fromObject(object.update,long+1)}if(object["delete"]!=null)message["delete"]=String(object["delete"]);if(object.transform!=null){if(typeof object.transform!=="object")throw TypeError(".google.firestore.v1.Write.transform: object expected");message.transform=$root.google.firestore.v1.DocumentTransform.fromObject(object.transform,long+1)}if(object.updateMask!=null){if(typeof object.updateMask!=="object")throw TypeError(".google.firestore.v1.Write.updateMask: object expected");message.updateMask=$root.google.firestore.v1.DocumentMask.fromObject(object.updateMask,long+1)}if(object.updateTransforms){if(!Array.isArray(object.updateTransforms))throw TypeError(".google.firestore.v1.Write.updateTransforms: array expected");message.updateTransforms=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.DocumentTransform;while(reader.pos>>3){case 1:{message.document=reader.string();break}case 2:{if(!(message.fieldTransforms&&message.fieldTransforms.length))message.fieldTransforms=[];message.fieldTransforms.push($root.google.firestore.v1.DocumentTransform.FieldTransform.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};DocumentTransform.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DocumentTransform.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.document!=null&&message.hasOwnProperty("document"))if(!$util.isString(message.document))return"document: string expected";if(message.fieldTransforms!=null&&message.hasOwnProperty("fieldTransforms")){if(!Array.isArray(message.fieldTransforms))return"fieldTransforms: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.DocumentTransform;if(object.document!=null)message.document=String(object.document);if(object.fieldTransforms){if(!Array.isArray(object.fieldTransforms))throw TypeError(".google.firestore.v1.DocumentTransform.fieldTransforms: array expected");message.fieldTransforms=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.DocumentTransform.FieldTransform;while(reader.pos>>3){case 1:{message.fieldPath=reader.string();break}case 2:{message.setToServerValue=reader.int32();break}case 3:{message.increment=$root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.maximum=$root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.minimum=$root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.appendMissingElements=$root.google.firestore.v1.ArrayValue.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.removeAllFromArray=$root.google.firestore.v1.ArrayValue.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};FieldTransform.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FieldTransform.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.fieldPath!=null&&message.hasOwnProperty("fieldPath"))if(!$util.isString(message.fieldPath))return"fieldPath: string expected";if(message.setToServerValue!=null&&message.hasOwnProperty("setToServerValue")){properties.transformType=1;switch(message.setToServerValue){default:return"setToServerValue: enum value expected";case 0:case 1:break}}if(message.increment!=null&&message.hasOwnProperty("increment")){if(properties.transformType===1)return"transformType: multiple values";properties.transformType=1;{var error=$root.google.firestore.v1.Value.verify(message.increment,long+1);if(error)return"increment."+error}}if(message.maximum!=null&&message.hasOwnProperty("maximum")){if(properties.transformType===1)return"transformType: multiple values";properties.transformType=1;{var error=$root.google.firestore.v1.Value.verify(message.maximum,long+1);if(error)return"maximum."+error}}if(message.minimum!=null&&message.hasOwnProperty("minimum")){if(properties.transformType===1)return"transformType: multiple values";properties.transformType=1;{var error=$root.google.firestore.v1.Value.verify(message.minimum,long+1);if(error)return"minimum."+error}}if(message.appendMissingElements!=null&&message.hasOwnProperty("appendMissingElements")){if(properties.transformType===1)return"transformType: multiple values";properties.transformType=1;{var error=$root.google.firestore.v1.ArrayValue.verify(message.appendMissingElements,long+1);if(error)return"appendMissingElements."+error}}if(message.removeAllFromArray!=null&&message.hasOwnProperty("removeAllFromArray")){if(properties.transformType===1)return"transformType: multiple values";properties.transformType=1;{var error=$root.google.firestore.v1.ArrayValue.verify(message.removeAllFromArray,long+1);if(error)return"removeAllFromArray."+error}}return null};FieldTransform.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.DocumentTransform.FieldTransform)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.DocumentTransform.FieldTransform;if(object.fieldPath!=null)message.fieldPath=String(object.fieldPath);switch(object.setToServerValue){default:if(typeof object.setToServerValue==="number"){message.setToServerValue=object.setToServerValue;break}break;case"SERVER_VALUE_UNSPECIFIED":case 0:message.setToServerValue=0;break;case"REQUEST_TIME":case 1:message.setToServerValue=1;break}if(object.increment!=null){if(typeof object.increment!=="object")throw TypeError(".google.firestore.v1.DocumentTransform.FieldTransform.increment: object expected");message.increment=$root.google.firestore.v1.Value.fromObject(object.increment,long+1)}if(object.maximum!=null){if(typeof object.maximum!=="object")throw TypeError(".google.firestore.v1.DocumentTransform.FieldTransform.maximum: object expected");message.maximum=$root.google.firestore.v1.Value.fromObject(object.maximum,long+1)}if(object.minimum!=null){if(typeof object.minimum!=="object")throw TypeError(".google.firestore.v1.DocumentTransform.FieldTransform.minimum: object expected");message.minimum=$root.google.firestore.v1.Value.fromObject(object.minimum,long+1)}if(object.appendMissingElements!=null){if(typeof object.appendMissingElements!=="object")throw TypeError(".google.firestore.v1.DocumentTransform.FieldTransform.appendMissingElements: object expected");message.appendMissingElements=$root.google.firestore.v1.ArrayValue.fromObject(object.appendMissingElements,long+1)}if(object.removeAllFromArray!=null){if(typeof object.removeAllFromArray!=="object")throw TypeError(".google.firestore.v1.DocumentTransform.FieldTransform.removeAllFromArray: object expected");message.removeAllFromArray=$root.google.firestore.v1.ArrayValue.fromObject(object.removeAllFromArray,long+1)}return message};FieldTransform.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.fieldPath="";if(message.fieldPath!=null&&message.hasOwnProperty("fieldPath"))object.fieldPath=message.fieldPath;if(message.setToServerValue!=null&&message.hasOwnProperty("setToServerValue")){object.setToServerValue=options.enums===String?$root.google.firestore.v1.DocumentTransform.FieldTransform.ServerValue[message.setToServerValue]===undefined?message.setToServerValue:$root.google.firestore.v1.DocumentTransform.FieldTransform.ServerValue[message.setToServerValue]:message.setToServerValue;if(options.oneofs)object.transformType="setToServerValue"}if(message.increment!=null&&message.hasOwnProperty("increment")){object.increment=$root.google.firestore.v1.Value.toObject(message.increment,options);if(options.oneofs)object.transformType="increment"}if(message.maximum!=null&&message.hasOwnProperty("maximum")){object.maximum=$root.google.firestore.v1.Value.toObject(message.maximum,options);if(options.oneofs)object.transformType="maximum"}if(message.minimum!=null&&message.hasOwnProperty("minimum")){object.minimum=$root.google.firestore.v1.Value.toObject(message.minimum,options);if(options.oneofs)object.transformType="minimum"}if(message.appendMissingElements!=null&&message.hasOwnProperty("appendMissingElements")){object.appendMissingElements=$root.google.firestore.v1.ArrayValue.toObject(message.appendMissingElements,options);if(options.oneofs)object.transformType="appendMissingElements"}if(message.removeAllFromArray!=null&&message.hasOwnProperty("removeAllFromArray")){object.removeAllFromArray=$root.google.firestore.v1.ArrayValue.toObject(message.removeAllFromArray,options);if(options.oneofs)object.transformType="removeAllFromArray"}return object};FieldTransform.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FieldTransform.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.DocumentTransform.FieldTransform"};FieldTransform.ServerValue=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="SERVER_VALUE_UNSPECIFIED"]=0;values[valuesById[1]="REQUEST_TIME"]=1;return values}();return FieldTransform}();return DocumentTransform}();v1.WriteResult=function(){function WriteResult(properties){this.transformResults=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.WriteResult;while(reader.pos>>3){case 1:{message.updateTime=$root.google.protobuf.Timestamp.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{if(!(message.transformResults&&message.transformResults.length))message.transformResults=[];message.transformResults.push($root.google.firestore.v1.Value.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};WriteResult.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};WriteResult.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.updateTime!=null&&message.hasOwnProperty("updateTime")){var error=$root.google.protobuf.Timestamp.verify(message.updateTime,long+1);if(error)return"updateTime."+error}if(message.transformResults!=null&&message.hasOwnProperty("transformResults")){if(!Array.isArray(message.transformResults))return"transformResults: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.WriteResult;if(object.updateTime!=null){if(typeof object.updateTime!=="object")throw TypeError(".google.firestore.v1.WriteResult.updateTime: object expected");message.updateTime=$root.google.protobuf.Timestamp.fromObject(object.updateTime,long+1)}if(object.transformResults){if(!Array.isArray(object.transformResults))throw TypeError(".google.firestore.v1.WriteResult.transformResults: array expected");message.transformResults=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.DocumentChange;while(reader.pos>>3){case 1:{message.document=$root.google.firestore.v1.Document.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{if(!(message.targetIds&&message.targetIds.length))message.targetIds=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos$util.recursionLimit)return"maximum nesting depth exceeded";if(message.document!=null&&message.hasOwnProperty("document")){var error=$root.google.firestore.v1.Document.verify(message.document,long+1);if(error)return"document."+error}if(message.targetIds!=null&&message.hasOwnProperty("targetIds")){if(!Array.isArray(message.targetIds))return"targetIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.DocumentChange;if(object.document!=null){if(typeof object.document!=="object")throw TypeError(".google.firestore.v1.DocumentChange.document: object expected");message.document=$root.google.firestore.v1.Document.fromObject(object.document,long+1)}if(object.targetIds){if(!Array.isArray(object.targetIds))throw TypeError(".google.firestore.v1.DocumentChange.targetIds: array expected");message.targetIds=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.DocumentDelete;while(reader.pos>>3){case 1:{message.document=reader.string();break}case 6:{if(!(message.removedTargetIds&&message.removedTargetIds.length))message.removedTargetIds=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos$util.recursionLimit)return"maximum nesting depth exceeded";if(message.document!=null&&message.hasOwnProperty("document"))if(!$util.isString(message.document))return"document: string expected";if(message.removedTargetIds!=null&&message.hasOwnProperty("removedTargetIds")){if(!Array.isArray(message.removedTargetIds))return"removedTargetIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.DocumentDelete;if(object.document!=null)message.document=String(object.document);if(object.removedTargetIds){if(!Array.isArray(object.removedTargetIds))throw TypeError(".google.firestore.v1.DocumentDelete.removedTargetIds: array expected");message.removedTargetIds=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.DocumentRemove;while(reader.pos>>3){case 1:{message.document=reader.string();break}case 2:{if(!(message.removedTargetIds&&message.removedTargetIds.length))message.removedTargetIds=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos$util.recursionLimit)return"maximum nesting depth exceeded";if(message.document!=null&&message.hasOwnProperty("document"))if(!$util.isString(message.document))return"document: string expected";if(message.removedTargetIds!=null&&message.hasOwnProperty("removedTargetIds")){if(!Array.isArray(message.removedTargetIds))return"removedTargetIds: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.DocumentRemove;if(object.document!=null)message.document=String(object.document);if(object.removedTargetIds){if(!Array.isArray(object.removedTargetIds))throw TypeError(".google.firestore.v1.DocumentRemove.removedTargetIds: array expected");message.removedTargetIds=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.firestore.v1.ExistenceFilter;while(reader.pos>>3){case 1:{message.targetId=reader.int32();break}case 2:{message.count=reader.int32();break}case 3:{message.unchangedNames=$root.google.firestore.v1.BloomFilter.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ExistenceFilter.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExistenceFilter.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.targetId!=null&&message.hasOwnProperty("targetId"))if(!$util.isInteger(message.targetId))return"targetId: integer expected";if(message.count!=null&&message.hasOwnProperty("count"))if(!$util.isInteger(message.count))return"count: integer expected";if(message.unchangedNames!=null&&message.hasOwnProperty("unchangedNames")){var error=$root.google.firestore.v1.BloomFilter.verify(message.unchangedNames,long+1);if(error)return"unchangedNames."+error}return null};ExistenceFilter.fromObject=function fromObject(object,long){if(object instanceof $root.google.firestore.v1.ExistenceFilter)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.firestore.v1.ExistenceFilter;if(object.targetId!=null)message.targetId=object.targetId|0;if(object.count!=null)message.count=object.count|0;if(object.unchangedNames!=null){if(typeof object.unchangedNames!=="object")throw TypeError(".google.firestore.v1.ExistenceFilter.unchangedNames: object expected");message.unchangedNames=$root.google.firestore.v1.BloomFilter.fromObject(object.unchangedNames,long+1)}return message};ExistenceFilter.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.targetId=0;object.count=0;object.unchangedNames=null}if(message.targetId!=null&&message.hasOwnProperty("targetId"))object.targetId=message.targetId;if(message.count!=null&&message.hasOwnProperty("count"))object.count=message.count;if(message.unchangedNames!=null&&message.hasOwnProperty("unchangedNames"))object.unchangedNames=$root.google.firestore.v1.BloomFilter.toObject(message.unchangedNames,options);return object};ExistenceFilter.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ExistenceFilter.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.firestore.v1.ExistenceFilter"};return ExistenceFilter}();return v1}();return firestore}();google.api=function(){var api={};api.FieldBehavior=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="FIELD_BEHAVIOR_UNSPECIFIED"]=0;values[valuesById[1]="OPTIONAL"]=1;values[valuesById[2]="REQUIRED"]=2;values[valuesById[3]="OUTPUT_ONLY"]=3;values[valuesById[4]="INPUT_ONLY"]=4;values[valuesById[5]="IMMUTABLE"]=5;values[valuesById[6]="UNORDERED_LIST"]=6;values[valuesById[7]="NON_EMPTY_DEFAULT"]=7;values[valuesById[8]="IDENTIFIER"]=8;return values}();api.ResourceDescriptor=function(){function ResourceDescriptor(properties){this.pattern=[];this.style=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.ResourceDescriptor;while(reader.pos>>3){case 1:{message.type=reader.string();break}case 2:{if(!(message.pattern&&message.pattern.length))message.pattern=[];message.pattern.push(reader.string());break}case 3:{message.nameField=reader.string();break}case 4:{message.history=reader.int32();break}case 5:{message.plural=reader.string();break}case 6:{message.singular=reader.string();break}case 10:{if(!(message.style&&message.style.length))message.style=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos$util.recursionLimit)return"maximum nesting depth exceeded";if(message.type!=null&&message.hasOwnProperty("type"))if(!$util.isString(message.type))return"type: string expected";if(message.pattern!=null&&message.hasOwnProperty("pattern")){if(!Array.isArray(message.pattern))return"pattern: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.ResourceDescriptor;if(object.type!=null)message.type=String(object.type);if(object.pattern){if(!Array.isArray(object.pattern))throw TypeError(".google.api.ResourceDescriptor.pattern: array expected");message.pattern=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.ResourceReference;while(reader.pos>>3){case 1:{message.type=reader.string();break}case 2:{message.childType=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ResourceReference.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ResourceReference.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.type!=null&&message.hasOwnProperty("type"))if(!$util.isString(message.type))return"type: string expected";if(message.childType!=null&&message.hasOwnProperty("childType"))if(!$util.isString(message.childType))return"childType: string expected";return null};ResourceReference.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.ResourceReference)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.ResourceReference;if(object.type!=null)message.type=String(object.type);if(object.childType!=null)message.childType=String(object.childType);return message};ResourceReference.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.type="";object.childType=""}if(message.type!=null&&message.hasOwnProperty("type"))object.type=message.type;if(message.childType!=null&&message.hasOwnProperty("childType"))object.childType=message.childType;return object};ResourceReference.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ResourceReference.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.ResourceReference"};return ResourceReference}();api.Http=function(){function Http(properties){this.rules=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.Http;while(reader.pos>>3){case 1:{if(!(message.rules&&message.rules.length))message.rules=[];message.rules.push($root.google.api.HttpRule.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.fullyDecodeReservedExpansion=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};Http.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Http.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.rules!=null&&message.hasOwnProperty("rules")){if(!Array.isArray(message.rules))return"rules: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.Http;if(object.rules){if(!Array.isArray(object.rules))throw TypeError(".google.api.Http.rules: array expected");message.rules=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.HttpRule;while(reader.pos>>3){case 1:{message.selector=reader.string();break}case 2:{message.get=reader.string();break}case 3:{message.put=reader.string();break}case 4:{message.post=reader.string();break}case 5:{message["delete"]=reader.string();break}case 6:{message.patch=reader.string();break}case 8:{message.custom=$root.google.api.CustomHttpPattern.decode(reader,reader.uint32(),undefined,long+1);break}case 7:{message.body=reader.string();break}case 12:{message.responseBody=reader.string();break}case 11:{if(!(message.additionalBindings&&message.additionalBindings.length))message.additionalBindings=[];message.additionalBindings.push($root.google.api.HttpRule.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};HttpRule.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};HttpRule.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.selector!=null&&message.hasOwnProperty("selector"))if(!$util.isString(message.selector))return"selector: string expected";if(message.get!=null&&message.hasOwnProperty("get")){properties.pattern=1;if(!$util.isString(message.get))return"get: string expected"}if(message.put!=null&&message.hasOwnProperty("put")){if(properties.pattern===1)return"pattern: multiple values";properties.pattern=1;if(!$util.isString(message.put))return"put: string expected"}if(message.post!=null&&message.hasOwnProperty("post")){if(properties.pattern===1)return"pattern: multiple values";properties.pattern=1;if(!$util.isString(message.post))return"post: string expected"}if(message["delete"]!=null&&message.hasOwnProperty("delete")){if(properties.pattern===1)return"pattern: multiple values";properties.pattern=1;if(!$util.isString(message["delete"]))return"delete: string expected"}if(message.patch!=null&&message.hasOwnProperty("patch")){if(properties.pattern===1)return"pattern: multiple values";properties.pattern=1;if(!$util.isString(message.patch))return"patch: string expected"}if(message.custom!=null&&message.hasOwnProperty("custom")){if(properties.pattern===1)return"pattern: multiple values";properties.pattern=1;{var error=$root.google.api.CustomHttpPattern.verify(message.custom,long+1);if(error)return"custom."+error}}if(message.body!=null&&message.hasOwnProperty("body"))if(!$util.isString(message.body))return"body: string expected";if(message.responseBody!=null&&message.hasOwnProperty("responseBody"))if(!$util.isString(message.responseBody))return"responseBody: string expected";if(message.additionalBindings!=null&&message.hasOwnProperty("additionalBindings")){if(!Array.isArray(message.additionalBindings))return"additionalBindings: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.HttpRule;if(object.selector!=null)message.selector=String(object.selector);if(object.get!=null)message.get=String(object.get);if(object.put!=null)message.put=String(object.put);if(object.post!=null)message.post=String(object.post);if(object["delete"]!=null)message["delete"]=String(object["delete"]);if(object.patch!=null)message.patch=String(object.patch);if(object.custom!=null){if(typeof object.custom!=="object")throw TypeError(".google.api.HttpRule.custom: object expected");message.custom=$root.google.api.CustomHttpPattern.fromObject(object.custom,long+1)}if(object.body!=null)message.body=String(object.body);if(object.responseBody!=null)message.responseBody=String(object.responseBody);if(object.additionalBindings){if(!Array.isArray(object.additionalBindings))throw TypeError(".google.api.HttpRule.additionalBindings: array expected");message.additionalBindings=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.CustomHttpPattern;while(reader.pos>>3){case 1:{message.kind=reader.string();break}case 2:{message.path=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};CustomHttpPattern.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CustomHttpPattern.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.kind!=null&&message.hasOwnProperty("kind"))if(!$util.isString(message.kind))return"kind: string expected";if(message.path!=null&&message.hasOwnProperty("path"))if(!$util.isString(message.path))return"path: string expected";return null};CustomHttpPattern.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.CustomHttpPattern)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.CustomHttpPattern;if(object.kind!=null)message.kind=String(object.kind);if(object.path!=null)message.path=String(object.path);return message};CustomHttpPattern.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.kind="";object.path=""}if(message.kind!=null&&message.hasOwnProperty("kind"))object.kind=message.kind;if(message.path!=null&&message.hasOwnProperty("path"))object.path=message.path;return object};CustomHttpPattern.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CustomHttpPattern.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.CustomHttpPattern"};return CustomHttpPattern}();api.CommonLanguageSettings=function(){function CommonLanguageSettings(properties){this.destinations=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.CommonLanguageSettings;while(reader.pos>>3){case 1:{message.referenceDocsUri=reader.string();break}case 2:{if(!(message.destinations&&message.destinations.length))message.destinations=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos$util.recursionLimit)return"maximum nesting depth exceeded";if(message.referenceDocsUri!=null&&message.hasOwnProperty("referenceDocsUri"))if(!$util.isString(message.referenceDocsUri))return"referenceDocsUri: string expected";if(message.destinations!=null&&message.hasOwnProperty("destinations")){if(!Array.isArray(message.destinations))return"destinations: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.CommonLanguageSettings;if(object.referenceDocsUri!=null)message.referenceDocsUri=String(object.referenceDocsUri);if(object.destinations){if(!Array.isArray(object.destinations))throw TypeError(".google.api.CommonLanguageSettings.destinations: array expected");message.destinations=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.ClientLibrarySettings;while(reader.pos>>3){case 1:{message.version=reader.string();break}case 2:{message.launchStage=reader.int32();break}case 3:{message.restNumericEnums=reader.bool();break}case 21:{message.javaSettings=$root.google.api.JavaSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 22:{message.cppSettings=$root.google.api.CppSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 23:{message.phpSettings=$root.google.api.PhpSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 24:{message.pythonSettings=$root.google.api.PythonSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 25:{message.nodeSettings=$root.google.api.NodeSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 26:{message.dotnetSettings=$root.google.api.DotnetSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 27:{message.rubySettings=$root.google.api.RubySettings.decode(reader,reader.uint32(),undefined,long+1);break}case 28:{message.goSettings=$root.google.api.GoSettings.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ClientLibrarySettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ClientLibrarySettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.version!=null&&message.hasOwnProperty("version"))if(!$util.isString(message.version))return"version: string expected";if(message.launchStage!=null&&message.hasOwnProperty("launchStage"))switch(message.launchStage){default:return"launchStage: enum value expected";case 0:case 6:case 7:case 1:case 2:case 3:case 4:case 5:break}if(message.restNumericEnums!=null&&message.hasOwnProperty("restNumericEnums"))if(typeof message.restNumericEnums!=="boolean")return"restNumericEnums: boolean expected";if(message.javaSettings!=null&&message.hasOwnProperty("javaSettings")){var error=$root.google.api.JavaSettings.verify(message.javaSettings,long+1);if(error)return"javaSettings."+error}if(message.cppSettings!=null&&message.hasOwnProperty("cppSettings")){var error=$root.google.api.CppSettings.verify(message.cppSettings,long+1);if(error)return"cppSettings."+error}if(message.phpSettings!=null&&message.hasOwnProperty("phpSettings")){var error=$root.google.api.PhpSettings.verify(message.phpSettings,long+1);if(error)return"phpSettings."+error}if(message.pythonSettings!=null&&message.hasOwnProperty("pythonSettings")){var error=$root.google.api.PythonSettings.verify(message.pythonSettings,long+1);if(error)return"pythonSettings."+error}if(message.nodeSettings!=null&&message.hasOwnProperty("nodeSettings")){var error=$root.google.api.NodeSettings.verify(message.nodeSettings,long+1);if(error)return"nodeSettings."+error}if(message.dotnetSettings!=null&&message.hasOwnProperty("dotnetSettings")){var error=$root.google.api.DotnetSettings.verify(message.dotnetSettings,long+1);if(error)return"dotnetSettings."+error}if(message.rubySettings!=null&&message.hasOwnProperty("rubySettings")){var error=$root.google.api.RubySettings.verify(message.rubySettings,long+1);if(error)return"rubySettings."+error}if(message.goSettings!=null&&message.hasOwnProperty("goSettings")){var error=$root.google.api.GoSettings.verify(message.goSettings,long+1);if(error)return"goSettings."+error}return null};ClientLibrarySettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.ClientLibrarySettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.ClientLibrarySettings;if(object.version!=null)message.version=String(object.version);switch(object.launchStage){default:if(typeof object.launchStage==="number"){message.launchStage=object.launchStage;break}break;case"LAUNCH_STAGE_UNSPECIFIED":case 0:message.launchStage=0;break;case"UNIMPLEMENTED":case 6:message.launchStage=6;break;case"PRELAUNCH":case 7:message.launchStage=7;break;case"EARLY_ACCESS":case 1:message.launchStage=1;break;case"ALPHA":case 2:message.launchStage=2;break;case"BETA":case 3:message.launchStage=3;break;case"GA":case 4:message.launchStage=4;break;case"DEPRECATED":case 5:message.launchStage=5;break}if(object.restNumericEnums!=null)message.restNumericEnums=Boolean(object.restNumericEnums);if(object.javaSettings!=null){if(typeof object.javaSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.javaSettings: object expected");message.javaSettings=$root.google.api.JavaSettings.fromObject(object.javaSettings,long+1)}if(object.cppSettings!=null){if(typeof object.cppSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.cppSettings: object expected");message.cppSettings=$root.google.api.CppSettings.fromObject(object.cppSettings,long+1)}if(object.phpSettings!=null){if(typeof object.phpSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.phpSettings: object expected");message.phpSettings=$root.google.api.PhpSettings.fromObject(object.phpSettings,long+1)}if(object.pythonSettings!=null){if(typeof object.pythonSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.pythonSettings: object expected");message.pythonSettings=$root.google.api.PythonSettings.fromObject(object.pythonSettings,long+1)}if(object.nodeSettings!=null){if(typeof object.nodeSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.nodeSettings: object expected");message.nodeSettings=$root.google.api.NodeSettings.fromObject(object.nodeSettings,long+1)}if(object.dotnetSettings!=null){if(typeof object.dotnetSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.dotnetSettings: object expected");message.dotnetSettings=$root.google.api.DotnetSettings.fromObject(object.dotnetSettings,long+1)}if(object.rubySettings!=null){if(typeof object.rubySettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.rubySettings: object expected");message.rubySettings=$root.google.api.RubySettings.fromObject(object.rubySettings,long+1)}if(object.goSettings!=null){if(typeof object.goSettings!=="object")throw TypeError(".google.api.ClientLibrarySettings.goSettings: object expected");message.goSettings=$root.google.api.GoSettings.fromObject(object.goSettings,long+1)}return message};ClientLibrarySettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.version="";object.launchStage=options.enums===String?"LAUNCH_STAGE_UNSPECIFIED":0;object.restNumericEnums=false;object.javaSettings=null;object.cppSettings=null;object.phpSettings=null;object.pythonSettings=null;object.nodeSettings=null;object.dotnetSettings=null;object.rubySettings=null;object.goSettings=null}if(message.version!=null&&message.hasOwnProperty("version"))object.version=message.version;if(message.launchStage!=null&&message.hasOwnProperty("launchStage"))object.launchStage=options.enums===String?$root.google.api.LaunchStage[message.launchStage]===undefined?message.launchStage:$root.google.api.LaunchStage[message.launchStage]:message.launchStage;if(message.restNumericEnums!=null&&message.hasOwnProperty("restNumericEnums"))object.restNumericEnums=message.restNumericEnums;if(message.javaSettings!=null&&message.hasOwnProperty("javaSettings"))object.javaSettings=$root.google.api.JavaSettings.toObject(message.javaSettings,options);if(message.cppSettings!=null&&message.hasOwnProperty("cppSettings"))object.cppSettings=$root.google.api.CppSettings.toObject(message.cppSettings,options);if(message.phpSettings!=null&&message.hasOwnProperty("phpSettings"))object.phpSettings=$root.google.api.PhpSettings.toObject(message.phpSettings,options);if(message.pythonSettings!=null&&message.hasOwnProperty("pythonSettings"))object.pythonSettings=$root.google.api.PythonSettings.toObject(message.pythonSettings,options);if(message.nodeSettings!=null&&message.hasOwnProperty("nodeSettings"))object.nodeSettings=$root.google.api.NodeSettings.toObject(message.nodeSettings,options);if(message.dotnetSettings!=null&&message.hasOwnProperty("dotnetSettings"))object.dotnetSettings=$root.google.api.DotnetSettings.toObject(message.dotnetSettings,options);if(message.rubySettings!=null&&message.hasOwnProperty("rubySettings"))object.rubySettings=$root.google.api.RubySettings.toObject(message.rubySettings,options);if(message.goSettings!=null&&message.hasOwnProperty("goSettings"))object.goSettings=$root.google.api.GoSettings.toObject(message.goSettings,options);return object};ClientLibrarySettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ClientLibrarySettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.ClientLibrarySettings"};return ClientLibrarySettings}();api.Publishing=function(){function Publishing(properties){this.methodSettings=[];this.codeownerGithubTeams=[];this.librarySettings=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.Publishing;while(reader.pos>>3){case 2:{if(!(message.methodSettings&&message.methodSettings.length))message.methodSettings=[];message.methodSettings.push($root.google.api.MethodSettings.decode(reader,reader.uint32(),undefined,long+1));break}case 101:{message.newIssueUri=reader.string();break}case 102:{message.documentationUri=reader.string();break}case 103:{message.apiShortName=reader.string();break}case 104:{message.githubLabel=reader.string();break}case 105:{if(!(message.codeownerGithubTeams&&message.codeownerGithubTeams.length))message.codeownerGithubTeams=[];message.codeownerGithubTeams.push(reader.string());break}case 106:{message.docTagPrefix=reader.string();break}case 107:{message.organization=reader.int32();break}case 109:{if(!(message.librarySettings&&message.librarySettings.length))message.librarySettings=[];message.librarySettings.push($root.google.api.ClientLibrarySettings.decode(reader,reader.uint32(),undefined,long+1));break}case 110:{message.protoReferenceDocumentationUri=reader.string();break}case 111:{message.restReferenceDocumentationUri=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};Publishing.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Publishing.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.methodSettings!=null&&message.hasOwnProperty("methodSettings")){if(!Array.isArray(message.methodSettings))return"methodSettings: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.Publishing;if(object.methodSettings){if(!Array.isArray(object.methodSettings))throw TypeError(".google.api.Publishing.methodSettings: array expected");message.methodSettings=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.JavaSettings,key,value;while(reader.pos>>3){case 1:{message.libraryPackage=reader.string();break}case 2:{if(message.serviceClassNames===$util.emptyObject)message.serviceClassNames={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.serviceClassNames,key);message.serviceClassNames[key]=value;break}case 3:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};JavaSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};JavaSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.libraryPackage!=null&&message.hasOwnProperty("libraryPackage"))if(!$util.isString(message.libraryPackage))return"libraryPackage: string expected";if(message.serviceClassNames!=null&&message.hasOwnProperty("serviceClassNames")){if(!$util.isObject(message.serviceClassNames))return"serviceClassNames: object expected";var key=Object.keys(message.serviceClassNames);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.JavaSettings;if(object.libraryPackage!=null)message.libraryPackage=String(object.libraryPackage);if(object.serviceClassNames){if(typeof object.serviceClassNames!=="object")throw TypeError(".google.api.JavaSettings.serviceClassNames: object expected");message.serviceClassNames={};for(var keys=Object.keys(object.serviceClassNames),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.CppSettings;while(reader.pos>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};CppSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CppSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}return null};CppSettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.CppSettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.CppSettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.CppSettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}return message};CppSettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.common=null;if(message.common!=null&&message.hasOwnProperty("common"))object.common=$root.google.api.CommonLanguageSettings.toObject(message.common,options);return object};CppSettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CppSettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.CppSettings"};return CppSettings}();api.PhpSettings=function(){function PhpSettings(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.PhpSettings;while(reader.pos>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.libraryPackage=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};PhpSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};PhpSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}if(message.libraryPackage!=null&&message.hasOwnProperty("libraryPackage"))if(!$util.isString(message.libraryPackage))return"libraryPackage: string expected";return null};PhpSettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.PhpSettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.PhpSettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.PhpSettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}if(object.libraryPackage!=null)message.libraryPackage=String(object.libraryPackage);return message};PhpSettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.common=null;object.libraryPackage=""}if(message.common!=null&&message.hasOwnProperty("common"))object.common=$root.google.api.CommonLanguageSettings.toObject(message.common,options);if(message.libraryPackage!=null&&message.hasOwnProperty("libraryPackage"))object.libraryPackage=message.libraryPackage;return object};PhpSettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};PhpSettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.PhpSettings"};return PhpSettings}();api.PythonSettings=function(){function PythonSettings(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.PythonSettings;while(reader.pos>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.experimentalFeatures=$root.google.api.PythonSettings.ExperimentalFeatures.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};PythonSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};PythonSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}if(message.experimentalFeatures!=null&&message.hasOwnProperty("experimentalFeatures")){var error=$root.google.api.PythonSettings.ExperimentalFeatures.verify(message.experimentalFeatures,long+1);if(error)return"experimentalFeatures."+error}return null};PythonSettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.PythonSettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.PythonSettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.PythonSettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}if(object.experimentalFeatures!=null){if(typeof object.experimentalFeatures!=="object")throw TypeError(".google.api.PythonSettings.experimentalFeatures: object expected");message.experimentalFeatures=$root.google.api.PythonSettings.ExperimentalFeatures.fromObject(object.experimentalFeatures,long+1)}return message};PythonSettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.common=null;object.experimentalFeatures=null}if(message.common!=null&&message.hasOwnProperty("common"))object.common=$root.google.api.CommonLanguageSettings.toObject(message.common,options);if(message.experimentalFeatures!=null&&message.hasOwnProperty("experimentalFeatures"))object.experimentalFeatures=$root.google.api.PythonSettings.ExperimentalFeatures.toObject(message.experimentalFeatures,options);return object};PythonSettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};PythonSettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.PythonSettings"};PythonSettings.ExperimentalFeatures=function(){function ExperimentalFeatures(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.PythonSettings.ExperimentalFeatures;while(reader.pos>>3){case 1:{message.restAsyncIoEnabled=reader.bool();break}case 2:{message.protobufPythonicTypesEnabled=reader.bool();break}case 3:{message.unversionedPackageDisabled=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};ExperimentalFeatures.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExperimentalFeatures.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.restAsyncIoEnabled!=null&&message.hasOwnProperty("restAsyncIoEnabled"))if(typeof message.restAsyncIoEnabled!=="boolean")return"restAsyncIoEnabled: boolean expected";if(message.protobufPythonicTypesEnabled!=null&&message.hasOwnProperty("protobufPythonicTypesEnabled"))if(typeof message.protobufPythonicTypesEnabled!=="boolean")return"protobufPythonicTypesEnabled: boolean expected";if(message.unversionedPackageDisabled!=null&&message.hasOwnProperty("unversionedPackageDisabled"))if(typeof message.unversionedPackageDisabled!=="boolean")return"unversionedPackageDisabled: boolean expected";return null};ExperimentalFeatures.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.PythonSettings.ExperimentalFeatures)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.PythonSettings.ExperimentalFeatures;if(object.restAsyncIoEnabled!=null)message.restAsyncIoEnabled=Boolean(object.restAsyncIoEnabled);if(object.protobufPythonicTypesEnabled!=null)message.protobufPythonicTypesEnabled=Boolean(object.protobufPythonicTypesEnabled);if(object.unversionedPackageDisabled!=null)message.unversionedPackageDisabled=Boolean(object.unversionedPackageDisabled);return message};ExperimentalFeatures.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.restAsyncIoEnabled=false;object.protobufPythonicTypesEnabled=false;object.unversionedPackageDisabled=false}if(message.restAsyncIoEnabled!=null&&message.hasOwnProperty("restAsyncIoEnabled"))object.restAsyncIoEnabled=message.restAsyncIoEnabled;if(message.protobufPythonicTypesEnabled!=null&&message.hasOwnProperty("protobufPythonicTypesEnabled"))object.protobufPythonicTypesEnabled=message.protobufPythonicTypesEnabled;if(message.unversionedPackageDisabled!=null&&message.hasOwnProperty("unversionedPackageDisabled"))object.unversionedPackageDisabled=message.unversionedPackageDisabled;return object};ExperimentalFeatures.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ExperimentalFeatures.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.PythonSettings.ExperimentalFeatures"};return ExperimentalFeatures}();return PythonSettings}();api.NodeSettings=function(){function NodeSettings(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.NodeSettings;while(reader.pos>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};NodeSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};NodeSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}return null};NodeSettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.NodeSettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.NodeSettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.NodeSettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}return message};NodeSettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.common=null;if(message.common!=null&&message.hasOwnProperty("common"))object.common=$root.google.api.CommonLanguageSettings.toObject(message.common,options);return object};NodeSettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};NodeSettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.NodeSettings"};return NodeSettings}();api.DotnetSettings=function(){function DotnetSettings(properties){this.renamedServices={};this.renamedResources={};this.ignoredResources=[];this.forcedNamespaceAliases=[];this.handwrittenSignatures=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.DotnetSettings,key,value;while(reader.pos>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{if(message.renamedServices===$util.emptyObject)message.renamedServices={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.renamedServices,key);message.renamedServices[key]=value;break}case 3:{if(message.renamedResources===$util.emptyObject)message.renamedResources={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.renamedResources,key);message.renamedResources[key]=value;break}case 4:{if(!(message.ignoredResources&&message.ignoredResources.length))message.ignoredResources=[];message.ignoredResources.push(reader.string());break}case 5:{if(!(message.forcedNamespaceAliases&&message.forcedNamespaceAliases.length))message.forcedNamespaceAliases=[];message.forcedNamespaceAliases.push(reader.string());break}case 6:{if(!(message.handwrittenSignatures&&message.handwrittenSignatures.length))message.handwrittenSignatures=[];message.handwrittenSignatures.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};DotnetSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DotnetSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}if(message.renamedServices!=null&&message.hasOwnProperty("renamedServices")){if(!$util.isObject(message.renamedServices))return"renamedServices: object expected";var key=Object.keys(message.renamedServices);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.DotnetSettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.DotnetSettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}if(object.renamedServices){if(typeof object.renamedServices!=="object")throw TypeError(".google.api.DotnetSettings.renamedServices: object expected");message.renamedServices={};for(var keys=Object.keys(object.renamedServices),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.RubySettings;while(reader.pos>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};RubySettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RubySettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}return null};RubySettings.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.RubySettings)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.RubySettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.RubySettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}return message};RubySettings.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.common=null;if(message.common!=null&&message.hasOwnProperty("common"))object.common=$root.google.api.CommonLanguageSettings.toObject(message.common,options);return object};RubySettings.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RubySettings.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.RubySettings"};return RubySettings}();api.GoSettings=function(){function GoSettings(properties){this.renamedServices={};if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.GoSettings,key,value;while(reader.pos>>3){case 1:{message.common=$root.google.api.CommonLanguageSettings.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{if(message.renamedServices===$util.emptyObject)message.renamedServices={};var end2=reader.uint32()+reader.pos;key="";value="";while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=reader.string();break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.renamedServices,key);message.renamedServices[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};GoSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GoSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.common!=null&&message.hasOwnProperty("common")){var error=$root.google.api.CommonLanguageSettings.verify(message.common,long+1);if(error)return"common."+error}if(message.renamedServices!=null&&message.hasOwnProperty("renamedServices")){if(!$util.isObject(message.renamedServices))return"renamedServices: object expected";var key=Object.keys(message.renamedServices);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.GoSettings;if(object.common!=null){if(typeof object.common!=="object")throw TypeError(".google.api.GoSettings.common: object expected");message.common=$root.google.api.CommonLanguageSettings.fromObject(object.common,long+1)}if(object.renamedServices){if(typeof object.renamedServices!=="object")throw TypeError(".google.api.GoSettings.renamedServices: object expected");message.renamedServices={};for(var keys=Object.keys(object.renamedServices),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.MethodSettings;while(reader.pos>>3){case 1:{message.selector=reader.string();break}case 2:{message.longRunning=$root.google.api.MethodSettings.LongRunning.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{if(!(message.autoPopulatedFields&&message.autoPopulatedFields.length))message.autoPopulatedFields=[];message.autoPopulatedFields.push(reader.string());break}case 4:{message.batching=$root.google.api.BatchingConfigProto.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};MethodSettings.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};MethodSettings.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.selector!=null&&message.hasOwnProperty("selector"))if(!$util.isString(message.selector))return"selector: string expected";if(message.longRunning!=null&&message.hasOwnProperty("longRunning")){var error=$root.google.api.MethodSettings.LongRunning.verify(message.longRunning,long+1);if(error)return"longRunning."+error}if(message.autoPopulatedFields!=null&&message.hasOwnProperty("autoPopulatedFields")){if(!Array.isArray(message.autoPopulatedFields))return"autoPopulatedFields: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.MethodSettings;if(object.selector!=null)message.selector=String(object.selector);if(object.longRunning!=null){if(typeof object.longRunning!=="object")throw TypeError(".google.api.MethodSettings.longRunning: object expected");message.longRunning=$root.google.api.MethodSettings.LongRunning.fromObject(object.longRunning,long+1)}if(object.autoPopulatedFields){if(!Array.isArray(object.autoPopulatedFields))throw TypeError(".google.api.MethodSettings.autoPopulatedFields: array expected");message.autoPopulatedFields=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.MethodSettings.LongRunning;while(reader.pos>>3){case 1:{message.initialPollDelay=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.pollDelayMultiplier=reader.float();break}case 3:{message.maxPollDelay=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.totalPollTimeout=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};LongRunning.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};LongRunning.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.initialPollDelay!=null&&message.hasOwnProperty("initialPollDelay")){var error=$root.google.protobuf.Duration.verify(message.initialPollDelay,long+1);if(error)return"initialPollDelay."+error}if(message.pollDelayMultiplier!=null&&message.hasOwnProperty("pollDelayMultiplier"))if(typeof message.pollDelayMultiplier!=="number")return"pollDelayMultiplier: number expected";if(message.maxPollDelay!=null&&message.hasOwnProperty("maxPollDelay")){var error=$root.google.protobuf.Duration.verify(message.maxPollDelay,long+1);if(error)return"maxPollDelay."+error}if(message.totalPollTimeout!=null&&message.hasOwnProperty("totalPollTimeout")){var error=$root.google.protobuf.Duration.verify(message.totalPollTimeout,long+1);if(error)return"totalPollTimeout."+error}return null};LongRunning.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.MethodSettings.LongRunning)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.MethodSettings.LongRunning;if(object.initialPollDelay!=null){if(typeof object.initialPollDelay!=="object")throw TypeError(".google.api.MethodSettings.LongRunning.initialPollDelay: object expected");message.initialPollDelay=$root.google.protobuf.Duration.fromObject(object.initialPollDelay,long+1)}if(object.pollDelayMultiplier!=null)message.pollDelayMultiplier=Number(object.pollDelayMultiplier);if(object.maxPollDelay!=null){if(typeof object.maxPollDelay!=="object")throw TypeError(".google.api.MethodSettings.LongRunning.maxPollDelay: object expected");message.maxPollDelay=$root.google.protobuf.Duration.fromObject(object.maxPollDelay,long+1)}if(object.totalPollTimeout!=null){if(typeof object.totalPollTimeout!=="object")throw TypeError(".google.api.MethodSettings.LongRunning.totalPollTimeout: object expected");message.totalPollTimeout=$root.google.protobuf.Duration.fromObject(object.totalPollTimeout,long+1)}return message};LongRunning.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.initialPollDelay=null;object.pollDelayMultiplier=0;object.maxPollDelay=null;object.totalPollTimeout=null}if(message.initialPollDelay!=null&&message.hasOwnProperty("initialPollDelay"))object.initialPollDelay=$root.google.protobuf.Duration.toObject(message.initialPollDelay,options);if(message.pollDelayMultiplier!=null&&message.hasOwnProperty("pollDelayMultiplier"))object.pollDelayMultiplier=options.json&&!isFinite(message.pollDelayMultiplier)?String(message.pollDelayMultiplier):message.pollDelayMultiplier;if(message.maxPollDelay!=null&&message.hasOwnProperty("maxPollDelay"))object.maxPollDelay=$root.google.protobuf.Duration.toObject(message.maxPollDelay,options);if(message.totalPollTimeout!=null&&message.hasOwnProperty("totalPollTimeout"))object.totalPollTimeout=$root.google.protobuf.Duration.toObject(message.totalPollTimeout,options);return object};LongRunning.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};LongRunning.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.MethodSettings.LongRunning"};return LongRunning}();return MethodSettings}();api.ClientLibraryOrganization=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED"]=0;values[valuesById[1]="CLOUD"]=1;values[valuesById[2]="ADS"]=2;values[valuesById[3]="PHOTOS"]=3;values[valuesById[4]="STREET_VIEW"]=4;values[valuesById[5]="SHOPPING"]=5;values[valuesById[6]="GEO"]=6;values[valuesById[7]="GENERATIVE_AI"]=7;return values}();api.ClientLibraryDestination=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="CLIENT_LIBRARY_DESTINATION_UNSPECIFIED"]=0;values[valuesById[10]="GITHUB"]=10;values[valuesById[20]="PACKAGE_MANAGER"]=20;return values}();api.SelectiveGapicGeneration=function(){function SelectiveGapicGeneration(properties){this.methods=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.SelectiveGapicGeneration;while(reader.pos>>3){case 1:{if(!(message.methods&&message.methods.length))message.methods=[];message.methods.push(reader.string());break}case 2:{message.generateOmittedAsInternal=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};SelectiveGapicGeneration.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};SelectiveGapicGeneration.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.methods!=null&&message.hasOwnProperty("methods")){if(!Array.isArray(message.methods))return"methods: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.SelectiveGapicGeneration;if(object.methods){if(!Array.isArray(object.methods))throw TypeError(".google.api.SelectiveGapicGeneration.methods: array expected");message.methods=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.BatchingConfigProto;while(reader.pos>>3){case 1:{message.thresholds=$root.google.api.BatchingSettingsProto.decode(reader,reader.uint32(),undefined,long+1);break}case 2:{message.batchDescriptor=$root.google.api.BatchingDescriptorProto.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};BatchingConfigProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BatchingConfigProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.thresholds!=null&&message.hasOwnProperty("thresholds")){var error=$root.google.api.BatchingSettingsProto.verify(message.thresholds,long+1);if(error)return"thresholds."+error}if(message.batchDescriptor!=null&&message.hasOwnProperty("batchDescriptor")){var error=$root.google.api.BatchingDescriptorProto.verify(message.batchDescriptor,long+1);if(error)return"batchDescriptor."+error}return null};BatchingConfigProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.BatchingConfigProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.BatchingConfigProto;if(object.thresholds!=null){if(typeof object.thresholds!=="object")throw TypeError(".google.api.BatchingConfigProto.thresholds: object expected");message.thresholds=$root.google.api.BatchingSettingsProto.fromObject(object.thresholds,long+1)}if(object.batchDescriptor!=null){if(typeof object.batchDescriptor!=="object")throw TypeError(".google.api.BatchingConfigProto.batchDescriptor: object expected");message.batchDescriptor=$root.google.api.BatchingDescriptorProto.fromObject(object.batchDescriptor,long+1)}return message};BatchingConfigProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.thresholds=null;object.batchDescriptor=null}if(message.thresholds!=null&&message.hasOwnProperty("thresholds"))object.thresholds=$root.google.api.BatchingSettingsProto.toObject(message.thresholds,options);if(message.batchDescriptor!=null&&message.hasOwnProperty("batchDescriptor"))object.batchDescriptor=$root.google.api.BatchingDescriptorProto.toObject(message.batchDescriptor,options);return object};BatchingConfigProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BatchingConfigProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.BatchingConfigProto"};return BatchingConfigProto}();api.BatchingSettingsProto=function(){function BatchingSettingsProto(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.BatchingSettingsProto;while(reader.pos>>3){case 1:{message.elementCountThreshold=reader.int32();break}case 2:{message.requestByteThreshold=reader.int64();break}case 3:{message.delayThreshold=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{message.elementCountLimit=reader.int32();break}case 5:{message.requestByteLimit=reader.int32();break}case 6:{message.flowControlElementLimit=reader.int32();break}case 7:{message.flowControlByteLimit=reader.int32();break}case 8:{message.flowControlLimitExceededBehavior=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};BatchingSettingsProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BatchingSettingsProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.elementCountThreshold!=null&&message.hasOwnProperty("elementCountThreshold"))if(!$util.isInteger(message.elementCountThreshold))return"elementCountThreshold: integer expected";if(message.requestByteThreshold!=null&&message.hasOwnProperty("requestByteThreshold"))if(!$util.isInteger(message.requestByteThreshold)&&!(message.requestByteThreshold&&$util.isInteger(message.requestByteThreshold.low)&&$util.isInteger(message.requestByteThreshold.high)))return"requestByteThreshold: integer|Long expected";if(message.delayThreshold!=null&&message.hasOwnProperty("delayThreshold")){var error=$root.google.protobuf.Duration.verify(message.delayThreshold,long+1);if(error)return"delayThreshold."+error}if(message.elementCountLimit!=null&&message.hasOwnProperty("elementCountLimit"))if(!$util.isInteger(message.elementCountLimit))return"elementCountLimit: integer expected";if(message.requestByteLimit!=null&&message.hasOwnProperty("requestByteLimit"))if(!$util.isInteger(message.requestByteLimit))return"requestByteLimit: integer expected";if(message.flowControlElementLimit!=null&&message.hasOwnProperty("flowControlElementLimit"))if(!$util.isInteger(message.flowControlElementLimit))return"flowControlElementLimit: integer expected";if(message.flowControlByteLimit!=null&&message.hasOwnProperty("flowControlByteLimit"))if(!$util.isInteger(message.flowControlByteLimit))return"flowControlByteLimit: integer expected";if(message.flowControlLimitExceededBehavior!=null&&message.hasOwnProperty("flowControlLimitExceededBehavior"))switch(message.flowControlLimitExceededBehavior){default:return"flowControlLimitExceededBehavior: enum value expected";case 0:case 1:case 2:case 3:break}return null};BatchingSettingsProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.BatchingSettingsProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.BatchingSettingsProto;if(object.elementCountThreshold!=null)message.elementCountThreshold=object.elementCountThreshold|0;if(object.requestByteThreshold!=null)if($util.Long)(message.requestByteThreshold=$util.Long.fromValue(object.requestByteThreshold)).unsigned=false;else if(typeof object.requestByteThreshold==="string")message.requestByteThreshold=parseInt(object.requestByteThreshold,10);else if(typeof object.requestByteThreshold==="number")message.requestByteThreshold=object.requestByteThreshold;else if(typeof object.requestByteThreshold==="object")message.requestByteThreshold=new $util.LongBits(object.requestByteThreshold.low>>>0,object.requestByteThreshold.high>>>0).toNumber();if(object.delayThreshold!=null){if(typeof object.delayThreshold!=="object")throw TypeError(".google.api.BatchingSettingsProto.delayThreshold: object expected");message.delayThreshold=$root.google.protobuf.Duration.fromObject(object.delayThreshold,long+1)}if(object.elementCountLimit!=null)message.elementCountLimit=object.elementCountLimit|0;if(object.requestByteLimit!=null)message.requestByteLimit=object.requestByteLimit|0;if(object.flowControlElementLimit!=null)message.flowControlElementLimit=object.flowControlElementLimit|0;if(object.flowControlByteLimit!=null)message.flowControlByteLimit=object.flowControlByteLimit|0;switch(object.flowControlLimitExceededBehavior){default:if(typeof object.flowControlLimitExceededBehavior==="number"){message.flowControlLimitExceededBehavior=object.flowControlLimitExceededBehavior;break}break;case"UNSET_BEHAVIOR":case 0:message.flowControlLimitExceededBehavior=0;break;case"THROW_EXCEPTION":case 1:message.flowControlLimitExceededBehavior=1;break;case"BLOCK":case 2:message.flowControlLimitExceededBehavior=2;break;case"IGNORE":case 3:message.flowControlLimitExceededBehavior=3;break}return message};BatchingSettingsProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.elementCountThreshold=0;if($util.Long){var long=new $util.Long(0,0,false);object.requestByteThreshold=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.requestByteThreshold=options.longs===String?"0":0;object.delayThreshold=null;object.elementCountLimit=0;object.requestByteLimit=0;object.flowControlElementLimit=0;object.flowControlByteLimit=0;object.flowControlLimitExceededBehavior=options.enums===String?"UNSET_BEHAVIOR":0}if(message.elementCountThreshold!=null&&message.hasOwnProperty("elementCountThreshold"))object.elementCountThreshold=message.elementCountThreshold;if(message.requestByteThreshold!=null&&message.hasOwnProperty("requestByteThreshold"))if(typeof message.requestByteThreshold==="number")object.requestByteThreshold=options.longs===String?String(message.requestByteThreshold):message.requestByteThreshold;else object.requestByteThreshold=options.longs===String?$util.Long.prototype.toString.call(message.requestByteThreshold):options.longs===Number?new $util.LongBits(message.requestByteThreshold.low>>>0,message.requestByteThreshold.high>>>0).toNumber():message.requestByteThreshold;if(message.delayThreshold!=null&&message.hasOwnProperty("delayThreshold"))object.delayThreshold=$root.google.protobuf.Duration.toObject(message.delayThreshold,options);if(message.elementCountLimit!=null&&message.hasOwnProperty("elementCountLimit"))object.elementCountLimit=message.elementCountLimit;if(message.requestByteLimit!=null&&message.hasOwnProperty("requestByteLimit"))object.requestByteLimit=message.requestByteLimit;if(message.flowControlElementLimit!=null&&message.hasOwnProperty("flowControlElementLimit"))object.flowControlElementLimit=message.flowControlElementLimit;if(message.flowControlByteLimit!=null&&message.hasOwnProperty("flowControlByteLimit"))object.flowControlByteLimit=message.flowControlByteLimit;if(message.flowControlLimitExceededBehavior!=null&&message.hasOwnProperty("flowControlLimitExceededBehavior"))object.flowControlLimitExceededBehavior=options.enums===String?$root.google.api.FlowControlLimitExceededBehaviorProto[message.flowControlLimitExceededBehavior]===undefined?message.flowControlLimitExceededBehavior:$root.google.api.FlowControlLimitExceededBehaviorProto[message.flowControlLimitExceededBehavior]:message.flowControlLimitExceededBehavior;return object};BatchingSettingsProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BatchingSettingsProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.BatchingSettingsProto"};return BatchingSettingsProto}();api.FlowControlLimitExceededBehaviorProto=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="UNSET_BEHAVIOR"]=0;values[valuesById[1]="THROW_EXCEPTION"]=1;values[valuesById[2]="BLOCK"]=2;values[valuesById[3]="IGNORE"]=3;return values}();api.BatchingDescriptorProto=function(){function BatchingDescriptorProto(properties){this.discriminatorFields=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.BatchingDescriptorProto;while(reader.pos>>3){case 1:{message.batchedField=reader.string();break}case 2:{if(!(message.discriminatorFields&&message.discriminatorFields.length))message.discriminatorFields=[];message.discriminatorFields.push(reader.string());break}case 3:{message.subresponseField=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};BatchingDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BatchingDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.batchedField!=null&&message.hasOwnProperty("batchedField"))if(!$util.isString(message.batchedField))return"batchedField: string expected";if(message.discriminatorFields!=null&&message.hasOwnProperty("discriminatorFields")){if(!Array.isArray(message.discriminatorFields))return"discriminatorFields: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.BatchingDescriptorProto;if(object.batchedField!=null)message.batchedField=String(object.batchedField);if(object.discriminatorFields){if(!Array.isArray(object.discriminatorFields))throw TypeError(".google.api.BatchingDescriptorProto.discriminatorFields: array expected");message.discriminatorFields=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.RoutingRule;while(reader.pos>>3){case 2:{if(!(message.routingParameters&&message.routingParameters.length))message.routingParameters=[];message.routingParameters.push($root.google.api.RoutingParameter.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};RoutingRule.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RoutingRule.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.routingParameters!=null&&message.hasOwnProperty("routingParameters")){if(!Array.isArray(message.routingParameters))return"routingParameters: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.RoutingRule;if(object.routingParameters){if(!Array.isArray(object.routingParameters))throw TypeError(".google.api.RoutingRule.routingParameters: array expected");message.routingParameters=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.api.RoutingParameter;while(reader.pos>>3){case 1:{message.field=reader.string();break}case 2:{message.pathTemplate=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};RoutingParameter.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};RoutingParameter.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.field!=null&&message.hasOwnProperty("field"))if(!$util.isString(message.field))return"field: string expected";if(message.pathTemplate!=null&&message.hasOwnProperty("pathTemplate"))if(!$util.isString(message.pathTemplate))return"pathTemplate: string expected";return null};RoutingParameter.fromObject=function fromObject(object,long){if(object instanceof $root.google.api.RoutingParameter)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.api.RoutingParameter;if(object.field!=null)message.field=String(object.field);if(object.pathTemplate!=null)message.pathTemplate=String(object.pathTemplate);return message};RoutingParameter.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.field="";object.pathTemplate=""}if(message.field!=null&&message.hasOwnProperty("field"))object.field=message.field;if(message.pathTemplate!=null&&message.hasOwnProperty("pathTemplate"))object.pathTemplate=message.pathTemplate;return object};RoutingParameter.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};RoutingParameter.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.api.RoutingParameter"};return RoutingParameter}();return api}();google.protobuf=function(){var protobuf={};protobuf.FileDescriptorSet=function(){function FileDescriptorSet(properties){this.file=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FileDescriptorSet;while(reader.pos>>3){case 1:{if(!(message.file&&message.file.length))message.file=[];message.file.push($root.google.protobuf.FileDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};FileDescriptorSet.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FileDescriptorSet.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.file!=null&&message.hasOwnProperty("file")){if(!Array.isArray(message.file))return"file: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FileDescriptorSet;if(object.file){if(!Array.isArray(object.file))throw TypeError(".google.protobuf.FileDescriptorSet.file: array expected");message.file=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FileDescriptorProto;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{message["package"]=reader.string();break}case 3:{if(!(message.dependency&&message.dependency.length))message.dependency=[];message.dependency.push(reader.string());break}case 10:{if(!(message.publicDependency&&message.publicDependency.length))message.publicDependency=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message["package"]!=null&&message.hasOwnProperty("package"))if(!$util.isString(message["package"]))return"package: string expected";if(message.dependency!=null&&message.hasOwnProperty("dependency")){if(!Array.isArray(message.dependency))return"dependency: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FileDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object["package"]!=null)message["package"]=String(object["package"]);if(object.dependency){if(!Array.isArray(object.dependency))throw TypeError(".google.protobuf.FileDescriptorProto.dependency: array expected");message.dependency=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.DescriptorProto;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{if(!(message.field&&message.field.length))message.field=[];message.field.push($root.google.protobuf.FieldDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 6:{if(!(message.extension&&message.extension.length))message.extension=[];message.extension.push($root.google.protobuf.FieldDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{if(!(message.nestedType&&message.nestedType.length))message.nestedType=[];message.nestedType.push($root.google.protobuf.DescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 4:{if(!(message.enumType&&message.enumType.length))message.enumType=[];message.enumType.push($root.google.protobuf.EnumDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 5:{if(!(message.extensionRange&&message.extensionRange.length))message.extensionRange=[];message.extensionRange.push($root.google.protobuf.DescriptorProto.ExtensionRange.decode(reader,reader.uint32(),undefined,long+1));break}case 8:{if(!(message.oneofDecl&&message.oneofDecl.length))message.oneofDecl=[];message.oneofDecl.push($root.google.protobuf.OneofDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 7:{message.options=$root.google.protobuf.MessageOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 9:{if(!(message.reservedRange&&message.reservedRange.length))message.reservedRange=[];message.reservedRange.push($root.google.protobuf.DescriptorProto.ReservedRange.decode(reader,reader.uint32(),undefined,long+1));break}case 10:{if(!(message.reservedName&&message.reservedName.length))message.reservedName=[];message.reservedName.push(reader.string());break}case 11:{message.visibility=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};DescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.field!=null&&message.hasOwnProperty("field")){if(!Array.isArray(message.field))return"field: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.DescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.field){if(!Array.isArray(object.field))throw TypeError(".google.protobuf.DescriptorProto.field: array expected");message.field=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.DescriptorProto.ExtensionRange;while(reader.pos>>3){case 1:{message.start=reader.int32();break}case 2:{message.end=reader.int32();break}case 3:{message.options=$root.google.protobuf.ExtensionRangeOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ExtensionRange.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExtensionRange.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.start!=null&&message.hasOwnProperty("start"))if(!$util.isInteger(message.start))return"start: integer expected";if(message.end!=null&&message.hasOwnProperty("end"))if(!$util.isInteger(message.end))return"end: integer expected";if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.ExtensionRangeOptions.verify(message.options,long+1);if(error)return"options."+error}return null};ExtensionRange.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.DescriptorProto.ExtensionRange)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.DescriptorProto.ExtensionRange;if(object.start!=null)message.start=object.start|0;if(object.end!=null)message.end=object.end|0;if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.DescriptorProto.ExtensionRange.options: object expected");message.options=$root.google.protobuf.ExtensionRangeOptions.fromObject(object.options,long+1)}return message};ExtensionRange.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.start=0;object.end=0;object.options=null}if(message.start!=null&&message.hasOwnProperty("start"))object.start=message.start;if(message.end!=null&&message.hasOwnProperty("end"))object.end=message.end;if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.ExtensionRangeOptions.toObject(message.options,options);return object};ExtensionRange.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ExtensionRange.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.DescriptorProto.ExtensionRange"};return ExtensionRange}();DescriptorProto.ReservedRange=function(){function ReservedRange(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.DescriptorProto.ReservedRange;while(reader.pos>>3){case 1:{message.start=reader.int32();break}case 2:{message.end=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};ReservedRange.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ReservedRange.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.start!=null&&message.hasOwnProperty("start"))if(!$util.isInteger(message.start))return"start: integer expected";if(message.end!=null&&message.hasOwnProperty("end"))if(!$util.isInteger(message.end))return"end: integer expected";return null};ReservedRange.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.DescriptorProto.ReservedRange)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.DescriptorProto.ReservedRange;if(object.start!=null)message.start=object.start|0;if(object.end!=null)message.end=object.end|0;return message};ReservedRange.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.start=0;object.end=0}if(message.start!=null&&message.hasOwnProperty("start"))object.start=message.start;if(message.end!=null&&message.hasOwnProperty("end"))object.end=message.end;return object};ReservedRange.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ReservedRange.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.DescriptorProto.ReservedRange"};return ReservedRange}();return DescriptorProto}();protobuf.ExtensionRangeOptions=function(){function ExtensionRangeOptions(properties){this.uninterpretedOption=[];this.declaration=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.ExtensionRangeOptions;while(reader.pos>>3){case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{if(!(message.declaration&&message.declaration.length))message.declaration=[];message.declaration.push($root.google.protobuf.ExtensionRangeOptions.Declaration.decode(reader,reader.uint32(),undefined,long+1));break}case 50:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.verification=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};ExtensionRangeOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ExtensionRangeOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.ExtensionRangeOptions;if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.ExtensionRangeOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.ExtensionRangeOptions.Declaration;while(reader.pos>>3){case 1:{message.number=reader.int32();break}case 2:{message.fullName=reader.string();break}case 3:{message.type=reader.string();break}case 5:{message.reserved=reader.bool();break}case 6:{message.repeated=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};Declaration.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Declaration.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.number!=null&&message.hasOwnProperty("number"))if(!$util.isInteger(message.number))return"number: integer expected";if(message.fullName!=null&&message.hasOwnProperty("fullName"))if(!$util.isString(message.fullName))return"fullName: string expected";if(message.type!=null&&message.hasOwnProperty("type"))if(!$util.isString(message.type))return"type: string expected";if(message.reserved!=null&&message.hasOwnProperty("reserved"))if(typeof message.reserved!=="boolean")return"reserved: boolean expected";if(message.repeated!=null&&message.hasOwnProperty("repeated"))if(typeof message.repeated!=="boolean")return"repeated: boolean expected";return null};Declaration.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.ExtensionRangeOptions.Declaration)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.ExtensionRangeOptions.Declaration;if(object.number!=null)message.number=object.number|0;if(object.fullName!=null)message.fullName=String(object.fullName);if(object.type!=null)message.type=String(object.type);if(object.reserved!=null)message.reserved=Boolean(object.reserved);if(object.repeated!=null)message.repeated=Boolean(object.repeated);return message};Declaration.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.number=0;object.fullName="";object.type="";object.reserved=false;object.repeated=false}if(message.number!=null&&message.hasOwnProperty("number"))object.number=message.number;if(message.fullName!=null&&message.hasOwnProperty("fullName"))object.fullName=message.fullName;if(message.type!=null&&message.hasOwnProperty("type"))object.type=message.type;if(message.reserved!=null&&message.hasOwnProperty("reserved"))object.reserved=message.reserved;if(message.repeated!=null&&message.hasOwnProperty("repeated"))object.repeated=message.repeated;return object};Declaration.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Declaration.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.ExtensionRangeOptions.Declaration"};return Declaration}();ExtensionRangeOptions.VerificationState=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="DECLARATION"]=0;values[valuesById[1]="UNVERIFIED"]=1;return values}();return ExtensionRangeOptions}();protobuf.FieldDescriptorProto=function(){function FieldDescriptorProto(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FieldDescriptorProto;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 3:{message.number=reader.int32();break}case 4:{message.label=reader.int32();break}case 5:{message.type=reader.int32();break}case 6:{message.typeName=reader.string();break}case 2:{message.extendee=reader.string();break}case 7:{message.defaultValue=reader.string();break}case 9:{message.oneofIndex=reader.int32();break}case 10:{message.jsonName=reader.string();break}case 8:{message.options=$root.google.protobuf.FieldOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 17:{message.proto3Optional=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};FieldDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FieldDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.number!=null&&message.hasOwnProperty("number"))if(!$util.isInteger(message.number))return"number: integer expected";if(message.label!=null&&message.hasOwnProperty("label"))switch(message.label){default:return"label: enum value expected";case 1:case 3:case 2:break}if(message.type!=null&&message.hasOwnProperty("type"))switch(message.type){default:return"type: enum value expected";case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:break}if(message.typeName!=null&&message.hasOwnProperty("typeName"))if(!$util.isString(message.typeName))return"typeName: string expected";if(message.extendee!=null&&message.hasOwnProperty("extendee"))if(!$util.isString(message.extendee))return"extendee: string expected";if(message.defaultValue!=null&&message.hasOwnProperty("defaultValue"))if(!$util.isString(message.defaultValue))return"defaultValue: string expected";if(message.oneofIndex!=null&&message.hasOwnProperty("oneofIndex"))if(!$util.isInteger(message.oneofIndex))return"oneofIndex: integer expected";if(message.jsonName!=null&&message.hasOwnProperty("jsonName"))if(!$util.isString(message.jsonName))return"jsonName: string expected";if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.FieldOptions.verify(message.options,long+1);if(error)return"options."+error}if(message.proto3Optional!=null&&message.hasOwnProperty("proto3Optional"))if(typeof message.proto3Optional!=="boolean")return"proto3Optional: boolean expected";return null};FieldDescriptorProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FieldDescriptorProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FieldDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.number!=null)message.number=object.number|0;switch(object.label){default:if(typeof object.label==="number"){message.label=object.label;break}break;case"LABEL_OPTIONAL":case 1:message.label=1;break;case"LABEL_REPEATED":case 3:message.label=3;break;case"LABEL_REQUIRED":case 2:message.label=2;break}switch(object.type){default:if(typeof object.type==="number"){message.type=object.type;break}break;case"TYPE_DOUBLE":case 1:message.type=1;break;case"TYPE_FLOAT":case 2:message.type=2;break;case"TYPE_INT64":case 3:message.type=3;break;case"TYPE_UINT64":case 4:message.type=4;break;case"TYPE_INT32":case 5:message.type=5;break;case"TYPE_FIXED64":case 6:message.type=6;break;case"TYPE_FIXED32":case 7:message.type=7;break;case"TYPE_BOOL":case 8:message.type=8;break;case"TYPE_STRING":case 9:message.type=9;break;case"TYPE_GROUP":case 10:message.type=10;break;case"TYPE_MESSAGE":case 11:message.type=11;break;case"TYPE_BYTES":case 12:message.type=12;break;case"TYPE_UINT32":case 13:message.type=13;break;case"TYPE_ENUM":case 14:message.type=14;break;case"TYPE_SFIXED32":case 15:message.type=15;break;case"TYPE_SFIXED64":case 16:message.type=16;break;case"TYPE_SINT32":case 17:message.type=17;break;case"TYPE_SINT64":case 18:message.type=18;break}if(object.typeName!=null)message.typeName=String(object.typeName);if(object.extendee!=null)message.extendee=String(object.extendee);if(object.defaultValue!=null)message.defaultValue=String(object.defaultValue);if(object.oneofIndex!=null)message.oneofIndex=object.oneofIndex|0;if(object.jsonName!=null)message.jsonName=String(object.jsonName);if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.FieldDescriptorProto.options: object expected");message.options=$root.google.protobuf.FieldOptions.fromObject(object.options,long+1)}if(object.proto3Optional!=null)message.proto3Optional=Boolean(object.proto3Optional);return message};FieldDescriptorProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.extendee="";object.number=0;object.label=options.enums===String?"LABEL_OPTIONAL":1;object.type=options.enums===String?"TYPE_DOUBLE":1;object.typeName="";object.defaultValue="";object.options=null;object.oneofIndex=0;object.jsonName="";object.proto3Optional=false}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.extendee!=null&&message.hasOwnProperty("extendee"))object.extendee=message.extendee;if(message.number!=null&&message.hasOwnProperty("number"))object.number=message.number;if(message.label!=null&&message.hasOwnProperty("label"))object.label=options.enums===String?$root.google.protobuf.FieldDescriptorProto.Label[message.label]===undefined?message.label:$root.google.protobuf.FieldDescriptorProto.Label[message.label]:message.label;if(message.type!=null&&message.hasOwnProperty("type"))object.type=options.enums===String?$root.google.protobuf.FieldDescriptorProto.Type[message.type]===undefined?message.type:$root.google.protobuf.FieldDescriptorProto.Type[message.type]:message.type;if(message.typeName!=null&&message.hasOwnProperty("typeName"))object.typeName=message.typeName;if(message.defaultValue!=null&&message.hasOwnProperty("defaultValue"))object.defaultValue=message.defaultValue;if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.FieldOptions.toObject(message.options,options);if(message.oneofIndex!=null&&message.hasOwnProperty("oneofIndex"))object.oneofIndex=message.oneofIndex;if(message.jsonName!=null&&message.hasOwnProperty("jsonName"))object.jsonName=message.jsonName;if(message.proto3Optional!=null&&message.hasOwnProperty("proto3Optional"))object.proto3Optional=message.proto3Optional;return object};FieldDescriptorProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FieldDescriptorProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FieldDescriptorProto"};FieldDescriptorProto.Type=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[1]="TYPE_DOUBLE"]=1;values[valuesById[2]="TYPE_FLOAT"]=2;values[valuesById[3]="TYPE_INT64"]=3;values[valuesById[4]="TYPE_UINT64"]=4;values[valuesById[5]="TYPE_INT32"]=5;values[valuesById[6]="TYPE_FIXED64"]=6;values[valuesById[7]="TYPE_FIXED32"]=7;values[valuesById[8]="TYPE_BOOL"]=8;values[valuesById[9]="TYPE_STRING"]=9;values[valuesById[10]="TYPE_GROUP"]=10;values[valuesById[11]="TYPE_MESSAGE"]=11;values[valuesById[12]="TYPE_BYTES"]=12;values[valuesById[13]="TYPE_UINT32"]=13;values[valuesById[14]="TYPE_ENUM"]=14;values[valuesById[15]="TYPE_SFIXED32"]=15;values[valuesById[16]="TYPE_SFIXED64"]=16;values[valuesById[17]="TYPE_SINT32"]=17;values[valuesById[18]="TYPE_SINT64"]=18;return values}();FieldDescriptorProto.Label=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[1]="LABEL_OPTIONAL"]=1;values[valuesById[3]="LABEL_REPEATED"]=3;values[valuesById[2]="LABEL_REQUIRED"]=2;return values}();return FieldDescriptorProto}();protobuf.OneofDescriptorProto=function(){function OneofDescriptorProto(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.OneofDescriptorProto;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{message.options=$root.google.protobuf.OneofOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};OneofDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};OneofDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.OneofOptions.verify(message.options,long+1);if(error)return"options."+error}return null};OneofDescriptorProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.OneofDescriptorProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.OneofDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.OneofDescriptorProto.options: object expected");message.options=$root.google.protobuf.OneofOptions.fromObject(object.options,long+1)}return message};OneofDescriptorProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.options=null}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.OneofOptions.toObject(message.options,options);return object};OneofDescriptorProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};OneofDescriptorProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.OneofDescriptorProto"};return OneofDescriptorProto}();protobuf.EnumDescriptorProto=function(){function EnumDescriptorProto(properties){this.value=[];this.reservedRange=[];this.reservedName=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.EnumDescriptorProto;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{if(!(message.value&&message.value.length))message.value=[];message.value.push($root.google.protobuf.EnumValueDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{message.options=$root.google.protobuf.EnumOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 4:{if(!(message.reservedRange&&message.reservedRange.length))message.reservedRange=[];message.reservedRange.push($root.google.protobuf.EnumDescriptorProto.EnumReservedRange.decode(reader,reader.uint32(),undefined,long+1));break}case 5:{if(!(message.reservedName&&message.reservedName.length))message.reservedName=[];message.reservedName.push(reader.string());break}case 6:{message.visibility=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};EnumDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EnumDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.value!=null&&message.hasOwnProperty("value")){if(!Array.isArray(message.value))return"value: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.EnumDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.value){if(!Array.isArray(object.value))throw TypeError(".google.protobuf.EnumDescriptorProto.value: array expected");message.value=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.EnumDescriptorProto.EnumReservedRange;while(reader.pos>>3){case 1:{message.start=reader.int32();break}case 2:{message.end=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};EnumReservedRange.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EnumReservedRange.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.start!=null&&message.hasOwnProperty("start"))if(!$util.isInteger(message.start))return"start: integer expected";if(message.end!=null&&message.hasOwnProperty("end"))if(!$util.isInteger(message.end))return"end: integer expected";return null};EnumReservedRange.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.EnumDescriptorProto.EnumReservedRange)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.EnumDescriptorProto.EnumReservedRange;if(object.start!=null)message.start=object.start|0;if(object.end!=null)message.end=object.end|0;return message};EnumReservedRange.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.start=0;object.end=0}if(message.start!=null&&message.hasOwnProperty("start"))object.start=message.start;if(message.end!=null&&message.hasOwnProperty("end"))object.end=message.end;return object};EnumReservedRange.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};EnumReservedRange.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.EnumDescriptorProto.EnumReservedRange"};return EnumReservedRange}();return EnumDescriptorProto}();protobuf.EnumValueDescriptorProto=function(){function EnumValueDescriptorProto(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.EnumValueDescriptorProto;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{message.number=reader.int32();break}case 3:{message.options=$root.google.protobuf.EnumValueOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};EnumValueDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EnumValueDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.number!=null&&message.hasOwnProperty("number"))if(!$util.isInteger(message.number))return"number: integer expected";if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.EnumValueOptions.verify(message.options,long+1);if(error)return"options."+error}return null};EnumValueDescriptorProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.EnumValueDescriptorProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.EnumValueDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.number!=null)message.number=object.number|0;if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.EnumValueDescriptorProto.options: object expected");message.options=$root.google.protobuf.EnumValueOptions.fromObject(object.options,long+1)}return message};EnumValueDescriptorProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.number=0;object.options=null}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.number!=null&&message.hasOwnProperty("number"))object.number=message.number;if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.EnumValueOptions.toObject(message.options,options);return object};EnumValueDescriptorProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};EnumValueDescriptorProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.EnumValueDescriptorProto"};return EnumValueDescriptorProto}();protobuf.ServiceDescriptorProto=function(){function ServiceDescriptorProto(properties){this.method=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.ServiceDescriptorProto;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{if(!(message.method&&message.method.length))message.method=[];message.method.push($root.google.protobuf.MethodDescriptorProto.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{message.options=$root.google.protobuf.ServiceOptions.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};ServiceDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ServiceDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.method!=null&&message.hasOwnProperty("method")){if(!Array.isArray(message.method))return"method: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.ServiceDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.method){if(!Array.isArray(object.method))throw TypeError(".google.protobuf.ServiceDescriptorProto.method: array expected");message.method=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.MethodDescriptorProto;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{message.inputType=reader.string();break}case 3:{message.outputType=reader.string();break}case 4:{message.options=$root.google.protobuf.MethodOptions.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.clientStreaming=reader.bool();break}case 6:{message.serverStreaming=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};MethodDescriptorProto.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};MethodDescriptorProto.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.inputType!=null&&message.hasOwnProperty("inputType"))if(!$util.isString(message.inputType))return"inputType: string expected";if(message.outputType!=null&&message.hasOwnProperty("outputType"))if(!$util.isString(message.outputType))return"outputType: string expected";if(message.options!=null&&message.hasOwnProperty("options")){var error=$root.google.protobuf.MethodOptions.verify(message.options,long+1);if(error)return"options."+error}if(message.clientStreaming!=null&&message.hasOwnProperty("clientStreaming"))if(typeof message.clientStreaming!=="boolean")return"clientStreaming: boolean expected";if(message.serverStreaming!=null&&message.hasOwnProperty("serverStreaming"))if(typeof message.serverStreaming!=="boolean")return"serverStreaming: boolean expected";return null};MethodDescriptorProto.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.MethodDescriptorProto)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.MethodDescriptorProto;if(object.name!=null)message.name=String(object.name);if(object.inputType!=null)message.inputType=String(object.inputType);if(object.outputType!=null)message.outputType=String(object.outputType);if(object.options!=null){if(typeof object.options!=="object")throw TypeError(".google.protobuf.MethodDescriptorProto.options: object expected");message.options=$root.google.protobuf.MethodOptions.fromObject(object.options,long+1)}if(object.clientStreaming!=null)message.clientStreaming=Boolean(object.clientStreaming);if(object.serverStreaming!=null)message.serverStreaming=Boolean(object.serverStreaming);return message};MethodDescriptorProto.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.inputType="";object.outputType="";object.options=null;object.clientStreaming=false;object.serverStreaming=false}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.inputType!=null&&message.hasOwnProperty("inputType"))object.inputType=message.inputType;if(message.outputType!=null&&message.hasOwnProperty("outputType"))object.outputType=message.outputType;if(message.options!=null&&message.hasOwnProperty("options"))object.options=$root.google.protobuf.MethodOptions.toObject(message.options,options);if(message.clientStreaming!=null&&message.hasOwnProperty("clientStreaming"))object.clientStreaming=message.clientStreaming;if(message.serverStreaming!=null&&message.hasOwnProperty("serverStreaming"))object.serverStreaming=message.serverStreaming;return object};MethodDescriptorProto.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};MethodDescriptorProto.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.MethodDescriptorProto"};return MethodDescriptorProto}();protobuf.FileOptions=function(){function FileOptions(properties){this.uninterpretedOption=[];this[".google.api.resourceDefinition"]=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FileOptions;while(reader.pos>>3){case 1:{message.javaPackage=reader.string();break}case 8:{message.javaOuterClassname=reader.string();break}case 10:{message.javaMultipleFiles=reader.bool();break}case 20:{message.javaGenerateEqualsAndHash=reader.bool();break}case 27:{message.javaStringCheckUtf8=reader.bool();break}case 9:{message.optimizeFor=reader.int32();break}case 11:{message.goPackage=reader.string();break}case 16:{message.ccGenericServices=reader.bool();break}case 17:{message.javaGenericServices=reader.bool();break}case 18:{message.pyGenericServices=reader.bool();break}case 23:{message.deprecated=reader.bool();break}case 31:{message.ccEnableArenas=reader.bool();break}case 36:{message.objcClassPrefix=reader.string();break}case 37:{message.csharpNamespace=reader.string();break}case 39:{message.swiftPrefix=reader.string();break}case 40:{message.phpClassPrefix=reader.string();break}case 41:{message.phpNamespace=reader.string();break}case 44:{message.phpMetadataNamespace=reader.string();break}case 45:{message.rubyPackage=reader.string();break}case 50:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}case 1053:{if(!(message[".google.api.resourceDefinition"]&&message[".google.api.resourceDefinition"].length))message[".google.api.resourceDefinition"]=[];message[".google.api.resourceDefinition"].push($root.google.api.ResourceDescriptor.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};FileOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FileOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.javaPackage!=null&&message.hasOwnProperty("javaPackage"))if(!$util.isString(message.javaPackage))return"javaPackage: string expected";if(message.javaOuterClassname!=null&&message.hasOwnProperty("javaOuterClassname"))if(!$util.isString(message.javaOuterClassname))return"javaOuterClassname: string expected";if(message.javaMultipleFiles!=null&&message.hasOwnProperty("javaMultipleFiles"))if(typeof message.javaMultipleFiles!=="boolean")return"javaMultipleFiles: boolean expected";if(message.javaGenerateEqualsAndHash!=null&&message.hasOwnProperty("javaGenerateEqualsAndHash"))if(typeof message.javaGenerateEqualsAndHash!=="boolean")return"javaGenerateEqualsAndHash: boolean expected";if(message.javaStringCheckUtf8!=null&&message.hasOwnProperty("javaStringCheckUtf8"))if(typeof message.javaStringCheckUtf8!=="boolean")return"javaStringCheckUtf8: boolean expected";if(message.optimizeFor!=null&&message.hasOwnProperty("optimizeFor"))switch(message.optimizeFor){default:return"optimizeFor: enum value expected";case 1:case 2:case 3:break}if(message.goPackage!=null&&message.hasOwnProperty("goPackage"))if(!$util.isString(message.goPackage))return"goPackage: string expected";if(message.ccGenericServices!=null&&message.hasOwnProperty("ccGenericServices"))if(typeof message.ccGenericServices!=="boolean")return"ccGenericServices: boolean expected";if(message.javaGenericServices!=null&&message.hasOwnProperty("javaGenericServices"))if(typeof message.javaGenericServices!=="boolean")return"javaGenericServices: boolean expected";if(message.pyGenericServices!=null&&message.hasOwnProperty("pyGenericServices"))if(typeof message.pyGenericServices!=="boolean")return"pyGenericServices: boolean expected";if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.ccEnableArenas!=null&&message.hasOwnProperty("ccEnableArenas"))if(typeof message.ccEnableArenas!=="boolean")return"ccEnableArenas: boolean expected";if(message.objcClassPrefix!=null&&message.hasOwnProperty("objcClassPrefix"))if(!$util.isString(message.objcClassPrefix))return"objcClassPrefix: string expected";if(message.csharpNamespace!=null&&message.hasOwnProperty("csharpNamespace"))if(!$util.isString(message.csharpNamespace))return"csharpNamespace: string expected";if(message.swiftPrefix!=null&&message.hasOwnProperty("swiftPrefix"))if(!$util.isString(message.swiftPrefix))return"swiftPrefix: string expected";if(message.phpClassPrefix!=null&&message.hasOwnProperty("phpClassPrefix"))if(!$util.isString(message.phpClassPrefix))return"phpClassPrefix: string expected";if(message.phpNamespace!=null&&message.hasOwnProperty("phpNamespace"))if(!$util.isString(message.phpNamespace))return"phpNamespace: string expected";if(message.phpMetadataNamespace!=null&&message.hasOwnProperty("phpMetadataNamespace"))if(!$util.isString(message.phpMetadataNamespace))return"phpMetadataNamespace: string expected";if(message.rubyPackage!=null&&message.hasOwnProperty("rubyPackage"))if(!$util.isString(message.rubyPackage))return"rubyPackage: string expected";if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FileOptions;if(object.javaPackage!=null)message.javaPackage=String(object.javaPackage);if(object.javaOuterClassname!=null)message.javaOuterClassname=String(object.javaOuterClassname);if(object.javaMultipleFiles!=null)message.javaMultipleFiles=Boolean(object.javaMultipleFiles);if(object.javaGenerateEqualsAndHash!=null)message.javaGenerateEqualsAndHash=Boolean(object.javaGenerateEqualsAndHash);if(object.javaStringCheckUtf8!=null)message.javaStringCheckUtf8=Boolean(object.javaStringCheckUtf8);switch(object.optimizeFor){default:if(typeof object.optimizeFor==="number"){message.optimizeFor=object.optimizeFor;break}break;case"SPEED":case 1:message.optimizeFor=1;break;case"CODE_SIZE":case 2:message.optimizeFor=2;break;case"LITE_RUNTIME":case 3:message.optimizeFor=3;break}if(object.goPackage!=null)message.goPackage=String(object.goPackage);if(object.ccGenericServices!=null)message.ccGenericServices=Boolean(object.ccGenericServices);if(object.javaGenericServices!=null)message.javaGenericServices=Boolean(object.javaGenericServices);if(object.pyGenericServices!=null)message.pyGenericServices=Boolean(object.pyGenericServices);if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);if(object.ccEnableArenas!=null)message.ccEnableArenas=Boolean(object.ccEnableArenas);if(object.objcClassPrefix!=null)message.objcClassPrefix=String(object.objcClassPrefix);if(object.csharpNamespace!=null)message.csharpNamespace=String(object.csharpNamespace);if(object.swiftPrefix!=null)message.swiftPrefix=String(object.swiftPrefix);if(object.phpClassPrefix!=null)message.phpClassPrefix=String(object.phpClassPrefix);if(object.phpNamespace!=null)message.phpNamespace=String(object.phpNamespace);if(object.phpMetadataNamespace!=null)message.phpMetadataNamespace=String(object.phpMetadataNamespace);if(object.rubyPackage!=null)message.rubyPackage=String(object.rubyPackage);if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.FileOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.FileOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.MessageOptions;while(reader.pos>>3){case 1:{message.messageSetWireFormat=reader.bool();break}case 2:{message.noStandardDescriptorAccessor=reader.bool();break}case 3:{message.deprecated=reader.bool();break}case 7:{message.mapEntry=reader.bool();break}case 11:{message.deprecatedLegacyJsonFieldConflicts=reader.bool();break}case 12:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}case 1053:{message[".google.api.resource"]=$root.google.api.ResourceDescriptor.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};MessageOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};MessageOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.messageSetWireFormat!=null&&message.hasOwnProperty("messageSetWireFormat"))if(typeof message.messageSetWireFormat!=="boolean")return"messageSetWireFormat: boolean expected";if(message.noStandardDescriptorAccessor!=null&&message.hasOwnProperty("noStandardDescriptorAccessor"))if(typeof message.noStandardDescriptorAccessor!=="boolean")return"noStandardDescriptorAccessor: boolean expected";if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.mapEntry!=null&&message.hasOwnProperty("mapEntry"))if(typeof message.mapEntry!=="boolean")return"mapEntry: boolean expected";if(message.deprecatedLegacyJsonFieldConflicts!=null&&message.hasOwnProperty("deprecatedLegacyJsonFieldConflicts"))if(typeof message.deprecatedLegacyJsonFieldConflicts!=="boolean")return"deprecatedLegacyJsonFieldConflicts: boolean expected";if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.MessageOptions;if(object.messageSetWireFormat!=null)message.messageSetWireFormat=Boolean(object.messageSetWireFormat);if(object.noStandardDescriptorAccessor!=null)message.noStandardDescriptorAccessor=Boolean(object.noStandardDescriptorAccessor);if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);if(object.mapEntry!=null)message.mapEntry=Boolean(object.mapEntry);if(object.deprecatedLegacyJsonFieldConflicts!=null)message.deprecatedLegacyJsonFieldConflicts=Boolean(object.deprecatedLegacyJsonFieldConflicts);if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.MessageOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.MessageOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FieldOptions;while(reader.pos>>3){case 1:{message.ctype=reader.int32();break}case 2:{message.packed=reader.bool();break}case 6:{message.jstype=reader.int32();break}case 5:{message.lazy=reader.bool();break}case 15:{message.unverifiedLazy=reader.bool();break}case 3:{message.deprecated=reader.bool();break}case 10:{message.weak=reader.bool();break}case 16:{message.debugRedact=reader.bool();break}case 17:{message.retention=reader.int32();break}case 19:{if(!(message.targets&&message.targets.length))message.targets=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos$util.recursionLimit)return"maximum nesting depth exceeded";if(message.ctype!=null&&message.hasOwnProperty("ctype"))switch(message.ctype){default:return"ctype: enum value expected";case 0:case 1:case 2:break}if(message.packed!=null&&message.hasOwnProperty("packed"))if(typeof message.packed!=="boolean")return"packed: boolean expected";if(message.jstype!=null&&message.hasOwnProperty("jstype"))switch(message.jstype){default:return"jstype: enum value expected";case 0:case 1:case 2:break}if(message.lazy!=null&&message.hasOwnProperty("lazy"))if(typeof message.lazy!=="boolean")return"lazy: boolean expected";if(message.unverifiedLazy!=null&&message.hasOwnProperty("unverifiedLazy"))if(typeof message.unverifiedLazy!=="boolean")return"unverifiedLazy: boolean expected";if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.weak!=null&&message.hasOwnProperty("weak"))if(typeof message.weak!=="boolean")return"weak: boolean expected";if(message.debugRedact!=null&&message.hasOwnProperty("debugRedact"))if(typeof message.debugRedact!=="boolean")return"debugRedact: boolean expected";if(message.retention!=null&&message.hasOwnProperty("retention"))switch(message.retention){default:return"retention: enum value expected";case 0:case 1:case 2:break}if(message.targets!=null&&message.hasOwnProperty("targets")){if(!Array.isArray(message.targets))return"targets: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FieldOptions;switch(object.ctype){default:if(typeof object.ctype==="number"){message.ctype=object.ctype;break}break;case"STRING":case 0:message.ctype=0;break;case"CORD":case 1:message.ctype=1;break;case"STRING_PIECE":case 2:message.ctype=2;break}if(object.packed!=null)message.packed=Boolean(object.packed);switch(object.jstype){default:if(typeof object.jstype==="number"){message.jstype=object.jstype;break}break;case"JS_NORMAL":case 0:message.jstype=0;break;case"JS_STRING":case 1:message.jstype=1;break;case"JS_NUMBER":case 2:message.jstype=2;break}if(object.lazy!=null)message.lazy=Boolean(object.lazy);if(object.unverifiedLazy!=null)message.unverifiedLazy=Boolean(object.unverifiedLazy);if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);if(object.weak!=null)message.weak=Boolean(object.weak);if(object.debugRedact!=null)message.debugRedact=Boolean(object.debugRedact);switch(object.retention){default:if(typeof object.retention==="number"){message.retention=object.retention;break}break;case"RETENTION_UNKNOWN":case 0:message.retention=0;break;case"RETENTION_RUNTIME":case 1:message.retention=1;break;case"RETENTION_SOURCE":case 2:message.retention=2;break}if(object.targets){if(!Array.isArray(object.targets))throw TypeError(".google.protobuf.FieldOptions.targets: array expected");message.targets=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FieldOptions.EditionDefault;while(reader.pos>>3){case 3:{message.edition=reader.int32();break}case 2:{message.value=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};EditionDefault.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EditionDefault.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.edition!=null&&message.hasOwnProperty("edition"))switch(message.edition){default:return"edition: enum value expected";case 0:case 900:case 998:case 999:case 1e3:case 1001:case 1002:case 9999:case 1:case 2:case 99997:case 99998:case 99999:case 2147483647:break}if(message.value!=null&&message.hasOwnProperty("value"))if(!$util.isString(message.value))return"value: string expected";return null};EditionDefault.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FieldOptions.EditionDefault)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FieldOptions.EditionDefault;switch(object.edition){default:if(typeof object.edition==="number"){message.edition=object.edition;break}break;case"EDITION_UNKNOWN":case 0:message.edition=0;break;case"EDITION_LEGACY":case 900:message.edition=900;break;case"EDITION_PROTO2":case 998:message.edition=998;break;case"EDITION_PROTO3":case 999:message.edition=999;break;case"EDITION_2023":case 1e3:message.edition=1e3;break;case"EDITION_2024":case 1001:message.edition=1001;break;case"EDITION_2026":case 1002:message.edition=1002;break;case"EDITION_UNSTABLE":case 9999:message.edition=9999;break;case"EDITION_1_TEST_ONLY":case 1:message.edition=1;break;case"EDITION_2_TEST_ONLY":case 2:message.edition=2;break;case"EDITION_99997_TEST_ONLY":case 99997:message.edition=99997;break;case"EDITION_99998_TEST_ONLY":case 99998:message.edition=99998;break;case"EDITION_99999_TEST_ONLY":case 99999:message.edition=99999;break;case"EDITION_MAX":case 2147483647:message.edition=2147483647;break}if(object.value!=null)message.value=String(object.value);return message};EditionDefault.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.value="";object.edition=options.enums===String?"EDITION_UNKNOWN":0}if(message.value!=null&&message.hasOwnProperty("value"))object.value=message.value;if(message.edition!=null&&message.hasOwnProperty("edition"))object.edition=options.enums===String?$root.google.protobuf.Edition[message.edition]===undefined?message.edition:$root.google.protobuf.Edition[message.edition]:message.edition;return object};EditionDefault.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};EditionDefault.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FieldOptions.EditionDefault"};return EditionDefault}();FieldOptions.FeatureSupport=function(){function FeatureSupport(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FieldOptions.FeatureSupport;while(reader.pos>>3){case 1:{message.editionIntroduced=reader.int32();break}case 2:{message.editionDeprecated=reader.int32();break}case 3:{message.deprecationWarning=reader.string();break}case 4:{message.editionRemoved=reader.int32();break}case 5:{message.removalError=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};FeatureSupport.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FeatureSupport.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.editionIntroduced!=null&&message.hasOwnProperty("editionIntroduced"))switch(message.editionIntroduced){default:return"editionIntroduced: enum value expected";case 0:case 900:case 998:case 999:case 1e3:case 1001:case 1002:case 9999:case 1:case 2:case 99997:case 99998:case 99999:case 2147483647:break}if(message.editionDeprecated!=null&&message.hasOwnProperty("editionDeprecated"))switch(message.editionDeprecated){default:return"editionDeprecated: enum value expected";case 0:case 900:case 998:case 999:case 1e3:case 1001:case 1002:case 9999:case 1:case 2:case 99997:case 99998:case 99999:case 2147483647:break}if(message.deprecationWarning!=null&&message.hasOwnProperty("deprecationWarning"))if(!$util.isString(message.deprecationWarning))return"deprecationWarning: string expected";if(message.editionRemoved!=null&&message.hasOwnProperty("editionRemoved"))switch(message.editionRemoved){default:return"editionRemoved: enum value expected";case 0:case 900:case 998:case 999:case 1e3:case 1001:case 1002:case 9999:case 1:case 2:case 99997:case 99998:case 99999:case 2147483647:break}if(message.removalError!=null&&message.hasOwnProperty("removalError"))if(!$util.isString(message.removalError))return"removalError: string expected";return null};FeatureSupport.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FieldOptions.FeatureSupport)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FieldOptions.FeatureSupport;switch(object.editionIntroduced){default:if(typeof object.editionIntroduced==="number"){message.editionIntroduced=object.editionIntroduced;break}break;case"EDITION_UNKNOWN":case 0:message.editionIntroduced=0;break;case"EDITION_LEGACY":case 900:message.editionIntroduced=900;break;case"EDITION_PROTO2":case 998:message.editionIntroduced=998;break;case"EDITION_PROTO3":case 999:message.editionIntroduced=999;break;case"EDITION_2023":case 1e3:message.editionIntroduced=1e3;break;case"EDITION_2024":case 1001:message.editionIntroduced=1001;break;case"EDITION_2026":case 1002:message.editionIntroduced=1002;break;case"EDITION_UNSTABLE":case 9999:message.editionIntroduced=9999;break;case"EDITION_1_TEST_ONLY":case 1:message.editionIntroduced=1;break;case"EDITION_2_TEST_ONLY":case 2:message.editionIntroduced=2;break;case"EDITION_99997_TEST_ONLY":case 99997:message.editionIntroduced=99997;break;case"EDITION_99998_TEST_ONLY":case 99998:message.editionIntroduced=99998;break;case"EDITION_99999_TEST_ONLY":case 99999:message.editionIntroduced=99999;break;case"EDITION_MAX":case 2147483647:message.editionIntroduced=2147483647;break}switch(object.editionDeprecated){default:if(typeof object.editionDeprecated==="number"){message.editionDeprecated=object.editionDeprecated;break}break;case"EDITION_UNKNOWN":case 0:message.editionDeprecated=0;break;case"EDITION_LEGACY":case 900:message.editionDeprecated=900;break;case"EDITION_PROTO2":case 998:message.editionDeprecated=998;break;case"EDITION_PROTO3":case 999:message.editionDeprecated=999;break;case"EDITION_2023":case 1e3:message.editionDeprecated=1e3;break;case"EDITION_2024":case 1001:message.editionDeprecated=1001;break;case"EDITION_2026":case 1002:message.editionDeprecated=1002;break;case"EDITION_UNSTABLE":case 9999:message.editionDeprecated=9999;break;case"EDITION_1_TEST_ONLY":case 1:message.editionDeprecated=1;break;case"EDITION_2_TEST_ONLY":case 2:message.editionDeprecated=2;break;case"EDITION_99997_TEST_ONLY":case 99997:message.editionDeprecated=99997;break;case"EDITION_99998_TEST_ONLY":case 99998:message.editionDeprecated=99998;break;case"EDITION_99999_TEST_ONLY":case 99999:message.editionDeprecated=99999;break;case"EDITION_MAX":case 2147483647:message.editionDeprecated=2147483647;break}if(object.deprecationWarning!=null)message.deprecationWarning=String(object.deprecationWarning);switch(object.editionRemoved){default:if(typeof object.editionRemoved==="number"){message.editionRemoved=object.editionRemoved;break}break;case"EDITION_UNKNOWN":case 0:message.editionRemoved=0;break;case"EDITION_LEGACY":case 900:message.editionRemoved=900;break;case"EDITION_PROTO2":case 998:message.editionRemoved=998;break;case"EDITION_PROTO3":case 999:message.editionRemoved=999;break;case"EDITION_2023":case 1e3:message.editionRemoved=1e3;break;case"EDITION_2024":case 1001:message.editionRemoved=1001;break;case"EDITION_2026":case 1002:message.editionRemoved=1002;break;case"EDITION_UNSTABLE":case 9999:message.editionRemoved=9999;break;case"EDITION_1_TEST_ONLY":case 1:message.editionRemoved=1;break;case"EDITION_2_TEST_ONLY":case 2:message.editionRemoved=2;break;case"EDITION_99997_TEST_ONLY":case 99997:message.editionRemoved=99997;break;case"EDITION_99998_TEST_ONLY":case 99998:message.editionRemoved=99998;break;case"EDITION_99999_TEST_ONLY":case 99999:message.editionRemoved=99999;break;case"EDITION_MAX":case 2147483647:message.editionRemoved=2147483647;break}if(object.removalError!=null)message.removalError=String(object.removalError);return message};FeatureSupport.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.editionIntroduced=options.enums===String?"EDITION_UNKNOWN":0;object.editionDeprecated=options.enums===String?"EDITION_UNKNOWN":0;object.deprecationWarning="";object.editionRemoved=options.enums===String?"EDITION_UNKNOWN":0;object.removalError=""}if(message.editionIntroduced!=null&&message.hasOwnProperty("editionIntroduced"))object.editionIntroduced=options.enums===String?$root.google.protobuf.Edition[message.editionIntroduced]===undefined?message.editionIntroduced:$root.google.protobuf.Edition[message.editionIntroduced]:message.editionIntroduced;if(message.editionDeprecated!=null&&message.hasOwnProperty("editionDeprecated"))object.editionDeprecated=options.enums===String?$root.google.protobuf.Edition[message.editionDeprecated]===undefined?message.editionDeprecated:$root.google.protobuf.Edition[message.editionDeprecated]:message.editionDeprecated;if(message.deprecationWarning!=null&&message.hasOwnProperty("deprecationWarning"))object.deprecationWarning=message.deprecationWarning;if(message.editionRemoved!=null&&message.hasOwnProperty("editionRemoved"))object.editionRemoved=options.enums===String?$root.google.protobuf.Edition[message.editionRemoved]===undefined?message.editionRemoved:$root.google.protobuf.Edition[message.editionRemoved]:message.editionRemoved;if(message.removalError!=null&&message.hasOwnProperty("removalError"))object.removalError=message.removalError;return object};FeatureSupport.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FeatureSupport.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FieldOptions.FeatureSupport"};return FeatureSupport}();return FieldOptions}();protobuf.OneofOptions=function(){function OneofOptions(properties){this.uninterpretedOption=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.OneofOptions;while(reader.pos>>3){case 1:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};OneofOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};OneofOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.OneofOptions;if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.OneofOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.OneofOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.EnumOptions;while(reader.pos>>3){case 2:{message.allowAlias=reader.bool();break}case 3:{message.deprecated=reader.bool();break}case 6:{message.deprecatedLegacyJsonFieldConflicts=reader.bool();break}case 7:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};EnumOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EnumOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.allowAlias!=null&&message.hasOwnProperty("allowAlias"))if(typeof message.allowAlias!=="boolean")return"allowAlias: boolean expected";if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.deprecatedLegacyJsonFieldConflicts!=null&&message.hasOwnProperty("deprecatedLegacyJsonFieldConflicts"))if(typeof message.deprecatedLegacyJsonFieldConflicts!=="boolean")return"deprecatedLegacyJsonFieldConflicts: boolean expected";if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.EnumOptions;if(object.allowAlias!=null)message.allowAlias=Boolean(object.allowAlias);if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);if(object.deprecatedLegacyJsonFieldConflicts!=null)message.deprecatedLegacyJsonFieldConflicts=Boolean(object.deprecatedLegacyJsonFieldConflicts);if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.EnumOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.EnumOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.EnumValueOptions;while(reader.pos>>3){case 1:{message.deprecated=reader.bool();break}case 2:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.debugRedact=reader.bool();break}case 4:{message.featureSupport=$root.google.protobuf.FieldOptions.FeatureSupport.decode(reader,reader.uint32(),undefined,long+1);break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};EnumValueOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};EnumValueOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.debugRedact!=null&&message.hasOwnProperty("debugRedact"))if(typeof message.debugRedact!=="boolean")return"debugRedact: boolean expected";if(message.featureSupport!=null&&message.hasOwnProperty("featureSupport")){var error=$root.google.protobuf.FieldOptions.FeatureSupport.verify(message.featureSupport,long+1);if(error)return"featureSupport."+error}if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.EnumValueOptions;if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.EnumValueOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.debugRedact!=null)message.debugRedact=Boolean(object.debugRedact);if(object.featureSupport!=null){if(typeof object.featureSupport!=="object")throw TypeError(".google.protobuf.EnumValueOptions.featureSupport: object expected");message.featureSupport=$root.google.protobuf.FieldOptions.FeatureSupport.fromObject(object.featureSupport,long+1)}if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.EnumValueOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.ServiceOptions;while(reader.pos>>3){case 34:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 33:{message.deprecated=reader.bool();break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}case 1049:{message[".google.api.defaultHost"]=reader.string();break}case 1050:{message[".google.api.oauthScopes"]=reader.string();break}case 525000001:{message[".google.api.apiVersion"]=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};ServiceOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ServiceOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.ServiceOptions;if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.ServiceOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.ServiceOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.MethodOptions;while(reader.pos>>3){case 33:{message.deprecated=reader.bool();break}case 34:{message.idempotencyLevel=reader.int32();break}case 35:{message.features=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 999:{if(!(message.uninterpretedOption&&message.uninterpretedOption.length))message.uninterpretedOption=[];message.uninterpretedOption.push($root.google.protobuf.UninterpretedOption.decode(reader,reader.uint32(),undefined,long+1));break}case 72295728:{message[".google.api.http"]=$root.google.api.HttpRule.decode(reader,reader.uint32(),undefined,long+1);break}case 1051:{if(!(message[".google.api.methodSignature"]&&message[".google.api.methodSignature"].length))message[".google.api.methodSignature"]=[];message[".google.api.methodSignature"].push(reader.string());break}case 72295729:{message[".google.api.routing"]=$root.google.api.RoutingRule.decode(reader,reader.uint32(),undefined,long+1);break}case 1049:{message[".google.longrunning.operationInfo"]=$root.google.longrunning.OperationInfo.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};MethodOptions.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};MethodOptions.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.deprecated!=null&&message.hasOwnProperty("deprecated"))if(typeof message.deprecated!=="boolean")return"deprecated: boolean expected";if(message.idempotencyLevel!=null&&message.hasOwnProperty("idempotencyLevel"))switch(message.idempotencyLevel){default:return"idempotencyLevel: enum value expected";case 0:case 1:case 2:break}if(message.features!=null&&message.hasOwnProperty("features")){var error=$root.google.protobuf.FeatureSet.verify(message.features,long+1);if(error)return"features."+error}if(message.uninterpretedOption!=null&&message.hasOwnProperty("uninterpretedOption")){if(!Array.isArray(message.uninterpretedOption))return"uninterpretedOption: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.MethodOptions;if(object.deprecated!=null)message.deprecated=Boolean(object.deprecated);switch(object.idempotencyLevel){default:if(typeof object.idempotencyLevel==="number"){message.idempotencyLevel=object.idempotencyLevel;break}break;case"IDEMPOTENCY_UNKNOWN":case 0:message.idempotencyLevel=0;break;case"NO_SIDE_EFFECTS":case 1:message.idempotencyLevel=1;break;case"IDEMPOTENT":case 2:message.idempotencyLevel=2;break}if(object.features!=null){if(typeof object.features!=="object")throw TypeError(".google.protobuf.MethodOptions.features: object expected");message.features=$root.google.protobuf.FeatureSet.fromObject(object.features,long+1)}if(object.uninterpretedOption){if(!Array.isArray(object.uninterpretedOption))throw TypeError(".google.protobuf.MethodOptions.uninterpretedOption: array expected");message.uninterpretedOption=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.UninterpretedOption;while(reader.pos>>3){case 2:{if(!(message.name&&message.name.length))message.name=[];message.name.push($root.google.protobuf.UninterpretedOption.NamePart.decode(reader,reader.uint32(),undefined,long+1));break}case 3:{message.identifierValue=reader.string();break}case 4:{message.positiveIntValue=reader.uint64();break}case 5:{message.negativeIntValue=reader.int64();break}case 6:{message.doubleValue=reader.double();break}case 7:{message.stringValue=reader.bytes();break}case 8:{message.aggregateValue=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};UninterpretedOption.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UninterpretedOption.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name")){if(!Array.isArray(message.name))return"name: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.UninterpretedOption;if(object.name){if(!Array.isArray(object.name))throw TypeError(".google.protobuf.UninterpretedOption.name: array expected");message.name=[];for(var i=0;i>>0,object.positiveIntValue.high>>>0).toNumber(true);if(object.negativeIntValue!=null)if($util.Long)(message.negativeIntValue=$util.Long.fromValue(object.negativeIntValue)).unsigned=false;else if(typeof object.negativeIntValue==="string")message.negativeIntValue=parseInt(object.negativeIntValue,10);else if(typeof object.negativeIntValue==="number")message.negativeIntValue=object.negativeIntValue;else if(typeof object.negativeIntValue==="object")message.negativeIntValue=new $util.LongBits(object.negativeIntValue.low>>>0,object.negativeIntValue.high>>>0).toNumber();if(object.doubleValue!=null)message.doubleValue=Number(object.doubleValue);if(object.stringValue!=null)if(typeof object.stringValue==="string")$util.base64.decode(object.stringValue,message.stringValue=$util.newBuffer($util.base64.length(object.stringValue)),0);else if(object.stringValue.length>=0)message.stringValue=object.stringValue;if(object.aggregateValue!=null)message.aggregateValue=String(object.aggregateValue);return message};UninterpretedOption.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.arrays||options.defaults)object.name=[];if(options.defaults){object.identifierValue="";if($util.Long){var long=new $util.Long(0,0,true);object.positiveIntValue=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.positiveIntValue=options.longs===String?"0":0;if($util.Long){var long=new $util.Long(0,0,false);object.negativeIntValue=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.negativeIntValue=options.longs===String?"0":0;object.doubleValue=0;if(options.bytes===String)object.stringValue="";else{object.stringValue=[];if(options.bytes!==Array)object.stringValue=$util.newBuffer(object.stringValue)}object.aggregateValue=""}if(message.name&&message.name.length){object.name=[];for(var j=0;j>>0,message.positiveIntValue.high>>>0).toNumber(true):message.positiveIntValue;if(message.negativeIntValue!=null&&message.hasOwnProperty("negativeIntValue"))if(typeof message.negativeIntValue==="number")object.negativeIntValue=options.longs===String?String(message.negativeIntValue):message.negativeIntValue;else object.negativeIntValue=options.longs===String?$util.Long.prototype.toString.call(message.negativeIntValue):options.longs===Number?new $util.LongBits(message.negativeIntValue.low>>>0,message.negativeIntValue.high>>>0).toNumber():message.negativeIntValue;if(message.doubleValue!=null&&message.hasOwnProperty("doubleValue"))object.doubleValue=options.json&&!isFinite(message.doubleValue)?String(message.doubleValue):message.doubleValue;if(message.stringValue!=null&&message.hasOwnProperty("stringValue"))object.stringValue=options.bytes===String?$util.base64.encode(message.stringValue,0,message.stringValue.length):options.bytes===Array?Array.prototype.slice.call(message.stringValue):message.stringValue;if(message.aggregateValue!=null&&message.hasOwnProperty("aggregateValue"))object.aggregateValue=message.aggregateValue;return object};UninterpretedOption.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UninterpretedOption.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.UninterpretedOption"};UninterpretedOption.NamePart=function(){function NamePart(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.UninterpretedOption.NamePart;while(reader.pos>>3){case 1:{message.namePart=reader.string();break}case 2:{message.isExtension=reader.bool();break}default:reader.skipType(tag&7,long);break}}if(!message.hasOwnProperty("namePart"))throw $util.ProtocolError("missing required 'namePart'",{instance:message});if(!message.hasOwnProperty("isExtension"))throw $util.ProtocolError("missing required 'isExtension'",{instance:message});return message};NamePart.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};NamePart.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(!$util.isString(message.namePart))return"namePart: string expected";if(typeof message.isExtension!=="boolean")return"isExtension: boolean expected";return null};NamePart.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.UninterpretedOption.NamePart)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.UninterpretedOption.NamePart;if(object.namePart!=null)message.namePart=String(object.namePart);if(object.isExtension!=null)message.isExtension=Boolean(object.isExtension);return message};NamePart.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.namePart="";object.isExtension=false}if(message.namePart!=null&&message.hasOwnProperty("namePart"))object.namePart=message.namePart;if(message.isExtension!=null&&message.hasOwnProperty("isExtension"))object.isExtension=message.isExtension;return object};NamePart.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};NamePart.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.UninterpretedOption.NamePart"};return NamePart}();return UninterpretedOption}();protobuf.FeatureSet=function(){function FeatureSet(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FeatureSet;while(reader.pos>>3){case 1:{message.fieldPresence=reader.int32();break}case 2:{message.enumType=reader.int32();break}case 3:{message.repeatedFieldEncoding=reader.int32();break}case 4:{message.utf8Validation=reader.int32();break}case 5:{message.messageEncoding=reader.int32();break}case 6:{message.jsonFormat=reader.int32();break}case 7:{message.enforceNamingStyle=reader.int32();break}case 8:{message.defaultSymbolVisibility=reader.int32();break}case 9:{message.enforceProtoLimits=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};FeatureSet.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FeatureSet.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.fieldPresence!=null&&message.hasOwnProperty("fieldPresence"))switch(message.fieldPresence){default:return"fieldPresence: enum value expected";case 0:case 1:case 2:case 3:break}if(message.enumType!=null&&message.hasOwnProperty("enumType"))switch(message.enumType){default:return"enumType: enum value expected";case 0:case 1:case 2:break}if(message.repeatedFieldEncoding!=null&&message.hasOwnProperty("repeatedFieldEncoding"))switch(message.repeatedFieldEncoding){default:return"repeatedFieldEncoding: enum value expected";case 0:case 1:case 2:break}if(message.utf8Validation!=null&&message.hasOwnProperty("utf8Validation"))switch(message.utf8Validation){default:return"utf8Validation: enum value expected";case 0:case 2:case 3:break}if(message.messageEncoding!=null&&message.hasOwnProperty("messageEncoding"))switch(message.messageEncoding){default:return"messageEncoding: enum value expected";case 0:case 1:case 2:break}if(message.jsonFormat!=null&&message.hasOwnProperty("jsonFormat"))switch(message.jsonFormat){default:return"jsonFormat: enum value expected";case 0:case 1:case 2:break}if(message.enforceNamingStyle!=null&&message.hasOwnProperty("enforceNamingStyle"))switch(message.enforceNamingStyle){default:return"enforceNamingStyle: enum value expected";case 0:case 1:case 2:case 3:break}if(message.defaultSymbolVisibility!=null&&message.hasOwnProperty("defaultSymbolVisibility"))switch(message.defaultSymbolVisibility){default:return"defaultSymbolVisibility: enum value expected";case 0:case 1:case 2:case 3:case 4:break}if(message.enforceProtoLimits!=null&&message.hasOwnProperty("enforceProtoLimits"))switch(message.enforceProtoLimits){default:return"enforceProtoLimits: enum value expected";case 0:case 1:case 2:break}return null};FeatureSet.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FeatureSet)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FeatureSet;switch(object.fieldPresence){default:if(typeof object.fieldPresence==="number"){message.fieldPresence=object.fieldPresence;break}break;case"FIELD_PRESENCE_UNKNOWN":case 0:message.fieldPresence=0;break;case"EXPLICIT":case 1:message.fieldPresence=1;break;case"IMPLICIT":case 2:message.fieldPresence=2;break;case"LEGACY_REQUIRED":case 3:message.fieldPresence=3;break}switch(object.enumType){default:if(typeof object.enumType==="number"){message.enumType=object.enumType;break}break;case"ENUM_TYPE_UNKNOWN":case 0:message.enumType=0;break;case"OPEN":case 1:message.enumType=1;break;case"CLOSED":case 2:message.enumType=2;break}switch(object.repeatedFieldEncoding){default:if(typeof object.repeatedFieldEncoding==="number"){message.repeatedFieldEncoding=object.repeatedFieldEncoding;break}break;case"REPEATED_FIELD_ENCODING_UNKNOWN":case 0:message.repeatedFieldEncoding=0;break;case"PACKED":case 1:message.repeatedFieldEncoding=1;break;case"EXPANDED":case 2:message.repeatedFieldEncoding=2;break}switch(object.utf8Validation){default:if(typeof object.utf8Validation==="number"){message.utf8Validation=object.utf8Validation;break}break;case"UTF8_VALIDATION_UNKNOWN":case 0:message.utf8Validation=0;break;case"VERIFY":case 2:message.utf8Validation=2;break;case"NONE":case 3:message.utf8Validation=3;break}switch(object.messageEncoding){default:if(typeof object.messageEncoding==="number"){message.messageEncoding=object.messageEncoding;break}break;case"MESSAGE_ENCODING_UNKNOWN":case 0:message.messageEncoding=0;break;case"LENGTH_PREFIXED":case 1:message.messageEncoding=1;break;case"DELIMITED":case 2:message.messageEncoding=2;break}switch(object.jsonFormat){default:if(typeof object.jsonFormat==="number"){message.jsonFormat=object.jsonFormat;break}break;case"JSON_FORMAT_UNKNOWN":case 0:message.jsonFormat=0;break;case"ALLOW":case 1:message.jsonFormat=1;break;case"LEGACY_BEST_EFFORT":case 2:message.jsonFormat=2;break}switch(object.enforceNamingStyle){default:if(typeof object.enforceNamingStyle==="number"){message.enforceNamingStyle=object.enforceNamingStyle;break}break;case"ENFORCE_NAMING_STYLE_UNKNOWN":case 0:message.enforceNamingStyle=0;break;case"STYLE2024":case 1:message.enforceNamingStyle=1;break;case"STYLE_LEGACY":case 2:message.enforceNamingStyle=2;break;case"STYLE2026":case 3:message.enforceNamingStyle=3;break}switch(object.defaultSymbolVisibility){default:if(typeof object.defaultSymbolVisibility==="number"){message.defaultSymbolVisibility=object.defaultSymbolVisibility;break}break;case"DEFAULT_SYMBOL_VISIBILITY_UNKNOWN":case 0:message.defaultSymbolVisibility=0;break;case"EXPORT_ALL":case 1:message.defaultSymbolVisibility=1;break;case"EXPORT_TOP_LEVEL":case 2:message.defaultSymbolVisibility=2;break;case"LOCAL_ALL":case 3:message.defaultSymbolVisibility=3;break;case"STRICT":case 4:message.defaultSymbolVisibility=4;break}switch(object.enforceProtoLimits){default:if(typeof object.enforceProtoLimits==="number"){message.enforceProtoLimits=object.enforceProtoLimits;break}break;case"PROTO_LIMITS_UNKNOWN":case 0:message.enforceProtoLimits=0;break;case"LEGACY_NO_EXPLICIT_LIMITS":case 1:message.enforceProtoLimits=1;break;case"PROTO_LIMITS2026":case 2:message.enforceProtoLimits=2;break}return message};FeatureSet.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.fieldPresence=options.enums===String?"FIELD_PRESENCE_UNKNOWN":0;object.enumType=options.enums===String?"ENUM_TYPE_UNKNOWN":0;object.repeatedFieldEncoding=options.enums===String?"REPEATED_FIELD_ENCODING_UNKNOWN":0;object.utf8Validation=options.enums===String?"UTF8_VALIDATION_UNKNOWN":0;object.messageEncoding=options.enums===String?"MESSAGE_ENCODING_UNKNOWN":0;object.jsonFormat=options.enums===String?"JSON_FORMAT_UNKNOWN":0;object.enforceNamingStyle=options.enums===String?"ENFORCE_NAMING_STYLE_UNKNOWN":0;object.defaultSymbolVisibility=options.enums===String?"DEFAULT_SYMBOL_VISIBILITY_UNKNOWN":0;object.enforceProtoLimits=options.enums===String?"PROTO_LIMITS_UNKNOWN":0}if(message.fieldPresence!=null&&message.hasOwnProperty("fieldPresence"))object.fieldPresence=options.enums===String?$root.google.protobuf.FeatureSet.FieldPresence[message.fieldPresence]===undefined?message.fieldPresence:$root.google.protobuf.FeatureSet.FieldPresence[message.fieldPresence]:message.fieldPresence;if(message.enumType!=null&&message.hasOwnProperty("enumType"))object.enumType=options.enums===String?$root.google.protobuf.FeatureSet.EnumType[message.enumType]===undefined?message.enumType:$root.google.protobuf.FeatureSet.EnumType[message.enumType]:message.enumType;if(message.repeatedFieldEncoding!=null&&message.hasOwnProperty("repeatedFieldEncoding"))object.repeatedFieldEncoding=options.enums===String?$root.google.protobuf.FeatureSet.RepeatedFieldEncoding[message.repeatedFieldEncoding]===undefined?message.repeatedFieldEncoding:$root.google.protobuf.FeatureSet.RepeatedFieldEncoding[message.repeatedFieldEncoding]:message.repeatedFieldEncoding;if(message.utf8Validation!=null&&message.hasOwnProperty("utf8Validation"))object.utf8Validation=options.enums===String?$root.google.protobuf.FeatureSet.Utf8Validation[message.utf8Validation]===undefined?message.utf8Validation:$root.google.protobuf.FeatureSet.Utf8Validation[message.utf8Validation]:message.utf8Validation;if(message.messageEncoding!=null&&message.hasOwnProperty("messageEncoding"))object.messageEncoding=options.enums===String?$root.google.protobuf.FeatureSet.MessageEncoding[message.messageEncoding]===undefined?message.messageEncoding:$root.google.protobuf.FeatureSet.MessageEncoding[message.messageEncoding]:message.messageEncoding;if(message.jsonFormat!=null&&message.hasOwnProperty("jsonFormat"))object.jsonFormat=options.enums===String?$root.google.protobuf.FeatureSet.JsonFormat[message.jsonFormat]===undefined?message.jsonFormat:$root.google.protobuf.FeatureSet.JsonFormat[message.jsonFormat]:message.jsonFormat;if(message.enforceNamingStyle!=null&&message.hasOwnProperty("enforceNamingStyle"))object.enforceNamingStyle=options.enums===String?$root.google.protobuf.FeatureSet.EnforceNamingStyle[message.enforceNamingStyle]===undefined?message.enforceNamingStyle:$root.google.protobuf.FeatureSet.EnforceNamingStyle[message.enforceNamingStyle]:message.enforceNamingStyle;if(message.defaultSymbolVisibility!=null&&message.hasOwnProperty("defaultSymbolVisibility"))object.defaultSymbolVisibility=options.enums===String?$root.google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility[message.defaultSymbolVisibility]===undefined?message.defaultSymbolVisibility:$root.google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility[message.defaultSymbolVisibility]:message.defaultSymbolVisibility;if(message.enforceProtoLimits!=null&&message.hasOwnProperty("enforceProtoLimits"))object.enforceProtoLimits=options.enums===String?$root.google.protobuf.FeatureSet.ProtoLimitsFeature.EnforceProtoLimits[message.enforceProtoLimits]===undefined?message.enforceProtoLimits:$root.google.protobuf.FeatureSet.ProtoLimitsFeature.EnforceProtoLimits[message.enforceProtoLimits]:message.enforceProtoLimits;return object};FeatureSet.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FeatureSet.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FeatureSet"};FeatureSet.FieldPresence=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="FIELD_PRESENCE_UNKNOWN"]=0;values[valuesById[1]="EXPLICIT"]=1;values[valuesById[2]="IMPLICIT"]=2;values[valuesById[3]="LEGACY_REQUIRED"]=3;return values}();FeatureSet.EnumType=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="ENUM_TYPE_UNKNOWN"]=0;values[valuesById[1]="OPEN"]=1;values[valuesById[2]="CLOSED"]=2;return values}();FeatureSet.RepeatedFieldEncoding=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="REPEATED_FIELD_ENCODING_UNKNOWN"]=0;values[valuesById[1]="PACKED"]=1;values[valuesById[2]="EXPANDED"]=2;return values}();FeatureSet.Utf8Validation=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="UTF8_VALIDATION_UNKNOWN"]=0;values[valuesById[2]="VERIFY"]=2;values[valuesById[3]="NONE"]=3;return values}();FeatureSet.MessageEncoding=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="MESSAGE_ENCODING_UNKNOWN"]=0;values[valuesById[1]="LENGTH_PREFIXED"]=1;values[valuesById[2]="DELIMITED"]=2;return values}();FeatureSet.JsonFormat=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="JSON_FORMAT_UNKNOWN"]=0;values[valuesById[1]="ALLOW"]=1;values[valuesById[2]="LEGACY_BEST_EFFORT"]=2;return values}();FeatureSet.EnforceNamingStyle=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="ENFORCE_NAMING_STYLE_UNKNOWN"]=0;values[valuesById[1]="STYLE2024"]=1;values[valuesById[2]="STYLE_LEGACY"]=2;values[valuesById[3]="STYLE2026"]=3;return values}();FeatureSet.VisibilityFeature=function(){function VisibilityFeature(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FeatureSet.VisibilityFeature;while(reader.pos>>3){default:reader.skipType(tag&7,long);break}}return message};VisibilityFeature.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};VisibilityFeature.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};VisibilityFeature.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FeatureSet.VisibilityFeature)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.protobuf.FeatureSet.VisibilityFeature};VisibilityFeature.toObject=function toObject(){return{}};VisibilityFeature.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};VisibilityFeature.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FeatureSet.VisibilityFeature"};VisibilityFeature.DefaultSymbolVisibility=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="DEFAULT_SYMBOL_VISIBILITY_UNKNOWN"]=0;values[valuesById[1]="EXPORT_ALL"]=1;values[valuesById[2]="EXPORT_TOP_LEVEL"]=2;values[valuesById[3]="LOCAL_ALL"]=3;values[valuesById[4]="STRICT"]=4;return values}();return VisibilityFeature}();FeatureSet.ProtoLimitsFeature=function(){function ProtoLimitsFeature(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FeatureSet.ProtoLimitsFeature;while(reader.pos>>3){default:reader.skipType(tag&7,long);break}}return message};ProtoLimitsFeature.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ProtoLimitsFeature.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};ProtoLimitsFeature.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FeatureSet.ProtoLimitsFeature)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.protobuf.FeatureSet.ProtoLimitsFeature};ProtoLimitsFeature.toObject=function toObject(){return{}};ProtoLimitsFeature.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ProtoLimitsFeature.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FeatureSet.ProtoLimitsFeature"};ProtoLimitsFeature.EnforceProtoLimits=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="PROTO_LIMITS_UNKNOWN"]=0;values[valuesById[1]="LEGACY_NO_EXPLICIT_LIMITS"]=1;values[valuesById[2]="PROTO_LIMITS2026"]=2;return values}();return ProtoLimitsFeature}();return FeatureSet}();protobuf.FeatureSetDefaults=function(){function FeatureSetDefaults(properties){this.defaults=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FeatureSetDefaults;while(reader.pos>>3){case 1:{if(!(message.defaults&&message.defaults.length))message.defaults=[];message.defaults.push($root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.decode(reader,reader.uint32(),undefined,long+1));break}case 4:{message.minimumEdition=reader.int32();break}case 5:{message.maximumEdition=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};FeatureSetDefaults.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FeatureSetDefaults.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.defaults!=null&&message.hasOwnProperty("defaults")){if(!Array.isArray(message.defaults))return"defaults: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FeatureSetDefaults;if(object.defaults){if(!Array.isArray(object.defaults))throw TypeError(".google.protobuf.FeatureSetDefaults.defaults: array expected");message.defaults=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault;while(reader.pos>>3){case 3:{message.edition=reader.int32();break}case 4:{message.overridableFeatures=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.fixedFeatures=$root.google.protobuf.FeatureSet.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};FeatureSetEditionDefault.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FeatureSetEditionDefault.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.edition!=null&&message.hasOwnProperty("edition"))switch(message.edition){default:return"edition: enum value expected";case 0:case 900:case 998:case 999:case 1e3:case 1001:case 1002:case 9999:case 1:case 2:case 99997:case 99998:case 99999:case 2147483647:break}if(message.overridableFeatures!=null&&message.hasOwnProperty("overridableFeatures")){var error=$root.google.protobuf.FeatureSet.verify(message.overridableFeatures,long+1);if(error)return"overridableFeatures."+error}if(message.fixedFeatures!=null&&message.hasOwnProperty("fixedFeatures")){var error=$root.google.protobuf.FeatureSet.verify(message.fixedFeatures,long+1);if(error)return"fixedFeatures."+error}return null};FeatureSetEditionDefault.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault;switch(object.edition){default:if(typeof object.edition==="number"){message.edition=object.edition;break}break;case"EDITION_UNKNOWN":case 0:message.edition=0;break;case"EDITION_LEGACY":case 900:message.edition=900;break;case"EDITION_PROTO2":case 998:message.edition=998;break;case"EDITION_PROTO3":case 999:message.edition=999;break;case"EDITION_2023":case 1e3:message.edition=1e3;break;case"EDITION_2024":case 1001:message.edition=1001;break;case"EDITION_2026":case 1002:message.edition=1002;break;case"EDITION_UNSTABLE":case 9999:message.edition=9999;break;case"EDITION_1_TEST_ONLY":case 1:message.edition=1;break;case"EDITION_2_TEST_ONLY":case 2:message.edition=2;break;case"EDITION_99997_TEST_ONLY":case 99997:message.edition=99997;break;case"EDITION_99998_TEST_ONLY":case 99998:message.edition=99998;break;case"EDITION_99999_TEST_ONLY":case 99999:message.edition=99999;break;case"EDITION_MAX":case 2147483647:message.edition=2147483647;break}if(object.overridableFeatures!=null){if(typeof object.overridableFeatures!=="object")throw TypeError(".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.overridableFeatures: object expected");message.overridableFeatures=$root.google.protobuf.FeatureSet.fromObject(object.overridableFeatures,long+1)}if(object.fixedFeatures!=null){if(typeof object.fixedFeatures!=="object")throw TypeError(".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.fixedFeatures: object expected");message.fixedFeatures=$root.google.protobuf.FeatureSet.fromObject(object.fixedFeatures,long+1)}return message};FeatureSetEditionDefault.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.edition=options.enums===String?"EDITION_UNKNOWN":0;object.overridableFeatures=null;object.fixedFeatures=null}if(message.edition!=null&&message.hasOwnProperty("edition"))object.edition=options.enums===String?$root.google.protobuf.Edition[message.edition]===undefined?message.edition:$root.google.protobuf.Edition[message.edition]:message.edition;if(message.overridableFeatures!=null&&message.hasOwnProperty("overridableFeatures"))object.overridableFeatures=$root.google.protobuf.FeatureSet.toObject(message.overridableFeatures,options);if(message.fixedFeatures!=null&&message.hasOwnProperty("fixedFeatures"))object.fixedFeatures=$root.google.protobuf.FeatureSet.toObject(message.fixedFeatures,options);return object};FeatureSetEditionDefault.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FeatureSetEditionDefault.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault"};return FeatureSetEditionDefault}();return FeatureSetDefaults}();protobuf.SourceCodeInfo=function(){function SourceCodeInfo(properties){this.location=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.SourceCodeInfo;while(reader.pos>>3){case 1:{if(!(message.location&&message.location.length))message.location=[];message.location.push($root.google.protobuf.SourceCodeInfo.Location.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};SourceCodeInfo.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};SourceCodeInfo.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.location!=null&&message.hasOwnProperty("location")){if(!Array.isArray(message.location))return"location: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.SourceCodeInfo;if(object.location){if(!Array.isArray(object.location))throw TypeError(".google.protobuf.SourceCodeInfo.location: array expected");message.location=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.SourceCodeInfo.Location;while(reader.pos>>3){case 1:{if(!(message.path&&message.path.length))message.path=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos$util.recursionLimit)return"maximum nesting depth exceeded";if(message.path!=null&&message.hasOwnProperty("path")){if(!Array.isArray(message.path))return"path: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.SourceCodeInfo.Location;if(object.path){if(!Array.isArray(object.path))throw TypeError(".google.protobuf.SourceCodeInfo.Location.path: array expected");message.path=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.GeneratedCodeInfo;while(reader.pos>>3){case 1:{if(!(message.annotation&&message.annotation.length))message.annotation=[];message.annotation.push($root.google.protobuf.GeneratedCodeInfo.Annotation.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};GeneratedCodeInfo.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GeneratedCodeInfo.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.annotation!=null&&message.hasOwnProperty("annotation")){if(!Array.isArray(message.annotation))return"annotation: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.GeneratedCodeInfo;if(object.annotation){if(!Array.isArray(object.annotation))throw TypeError(".google.protobuf.GeneratedCodeInfo.annotation: array expected");message.annotation=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.GeneratedCodeInfo.Annotation;while(reader.pos>>3){case 1:{if(!(message.path&&message.path.length))message.path=[];if((tag&7)===2){var end2=reader.uint32()+reader.pos;while(reader.pos$util.recursionLimit)return"maximum nesting depth exceeded";if(message.path!=null&&message.hasOwnProperty("path")){if(!Array.isArray(message.path))return"path: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.GeneratedCodeInfo.Annotation;if(object.path){if(!Array.isArray(object.path))throw TypeError(".google.protobuf.GeneratedCodeInfo.Annotation.path: array expected");message.path=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Timestamp;while(reader.pos>>3){case 1:{message.seconds=reader.int64();break}case 2:{message.nanos=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};Timestamp.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Timestamp.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.seconds!=null&&message.hasOwnProperty("seconds"))if(!$util.isInteger(message.seconds)&&!(message.seconds&&$util.isInteger(message.seconds.low)&&$util.isInteger(message.seconds.high)))return"seconds: integer|Long expected";if(message.nanos!=null&&message.hasOwnProperty("nanos"))if(!$util.isInteger(message.nanos))return"nanos: integer expected";return null};Timestamp.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Timestamp)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Timestamp;if(object.seconds!=null)if($util.Long)(message.seconds=$util.Long.fromValue(object.seconds)).unsigned=false;else if(typeof object.seconds==="string")message.seconds=parseInt(object.seconds,10);else if(typeof object.seconds==="number")message.seconds=object.seconds;else if(typeof object.seconds==="object")message.seconds=new $util.LongBits(object.seconds.low>>>0,object.seconds.high>>>0).toNumber();if(object.nanos!=null)message.nanos=object.nanos|0;return message};Timestamp.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){if($util.Long){var long=new $util.Long(0,0,false);object.seconds=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.seconds=options.longs===String?"0":0;object.nanos=0}if(message.seconds!=null&&message.hasOwnProperty("seconds"))if(typeof message.seconds==="number")object.seconds=options.longs===String?String(message.seconds):message.seconds;else object.seconds=options.longs===String?$util.Long.prototype.toString.call(message.seconds):options.longs===Number?new $util.LongBits(message.seconds.low>>>0,message.seconds.high>>>0).toNumber():message.seconds;if(message.nanos!=null&&message.hasOwnProperty("nanos"))object.nanos=message.nanos;return object};Timestamp.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Timestamp.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Timestamp"};return Timestamp}();protobuf.Duration=function(){function Duration(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Duration;while(reader.pos>>3){case 1:{message.seconds=reader.int64();break}case 2:{message.nanos=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};Duration.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Duration.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.seconds!=null&&message.hasOwnProperty("seconds"))if(!$util.isInteger(message.seconds)&&!(message.seconds&&$util.isInteger(message.seconds.low)&&$util.isInteger(message.seconds.high)))return"seconds: integer|Long expected";if(message.nanos!=null&&message.hasOwnProperty("nanos"))if(!$util.isInteger(message.nanos))return"nanos: integer expected";return null};Duration.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Duration)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Duration;if(object.seconds!=null)if($util.Long)(message.seconds=$util.Long.fromValue(object.seconds)).unsigned=false;else if(typeof object.seconds==="string")message.seconds=parseInt(object.seconds,10);else if(typeof object.seconds==="number")message.seconds=object.seconds;else if(typeof object.seconds==="object")message.seconds=new $util.LongBits(object.seconds.low>>>0,object.seconds.high>>>0).toNumber();if(object.nanos!=null)message.nanos=object.nanos|0;return message};Duration.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){if($util.Long){var long=new $util.Long(0,0,false);object.seconds=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.seconds=options.longs===String?"0":0;object.nanos=0}if(message.seconds!=null&&message.hasOwnProperty("seconds"))if(typeof message.seconds==="number")object.seconds=options.longs===String?String(message.seconds):message.seconds;else object.seconds=options.longs===String?$util.Long.prototype.toString.call(message.seconds):options.longs===Number?new $util.LongBits(message.seconds.low>>>0,message.seconds.high>>>0).toNumber():message.seconds;if(message.nanos!=null&&message.hasOwnProperty("nanos"))object.nanos=message.nanos;return object};Duration.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Duration.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Duration"};return Duration}();protobuf.Any=function(){function Any(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Any;while(reader.pos>>3){case 1:{message.type_url=reader.string();break}case 2:{message.value=reader.bytes();break}default:reader.skipType(tag&7,long);break}}return message};Any.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Any.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.type_url!=null&&message.hasOwnProperty("type_url"))if(!$util.isString(message.type_url))return"type_url: string expected";if(message.value!=null&&message.hasOwnProperty("value"))if(!(message.value&&typeof message.value.length==="number"||$util.isString(message.value)))return"value: buffer expected";return null};Any.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Any)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Any;if(object.type_url!=null)message.type_url=String(object.type_url);if(object.value!=null)if(typeof object.value==="string")$util.base64.decode(object.value,message.value=$util.newBuffer($util.base64.length(object.value)),0);else if(object.value.length>=0)message.value=object.value;return message};Any.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.type_url="";if(options.bytes===String)object.value="";else{object.value=[];if(options.bytes!==Array)object.value=$util.newBuffer(object.value)}}if(message.type_url!=null&&message.hasOwnProperty("type_url"))object.type_url=message.type_url;if(message.value!=null&&message.hasOwnProperty("value"))object.value=options.bytes===String?$util.base64.encode(message.value,0,message.value.length):options.bytes===Array?Array.prototype.slice.call(message.value):message.value;return object};Any.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Any.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Any"};return Any}();protobuf.Empty=function(){function Empty(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Empty;while(reader.pos>>3){default:reader.skipType(tag&7,long);break}}return message};Empty.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Empty.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";return null};Empty.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Empty)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");return new $root.google.protobuf.Empty};Empty.toObject=function toObject(){return{}};Empty.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Empty.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Empty"};return Empty}();protobuf.FieldMask=function(){function FieldMask(properties){this.paths=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FieldMask;while(reader.pos>>3){case 1:{if(!(message.paths&&message.paths.length))message.paths=[];message.paths.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};FieldMask.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FieldMask.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.paths!=null&&message.hasOwnProperty("paths")){if(!Array.isArray(message.paths))return"paths: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FieldMask;if(object.paths){if(!Array.isArray(object.paths))throw TypeError(".google.protobuf.FieldMask.paths: array expected");message.paths=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Struct,key,value;while(reader.pos>>3){case 1:{if(message.fields===$util.emptyObject)message.fields={};var end2=reader.uint32()+reader.pos;key="";value=null;while(reader.pos>>3){case 1:key=reader.string();break;case 2:value=$root.google.protobuf.Value.decode(reader,reader.uint32(),undefined,long+1);break;default:reader.skipType(tag2&7,long);break}}if(key==="__proto__")$util.makeProp(message.fields,key);message.fields[key]=value;break}default:reader.skipType(tag&7,long);break}}return message};Struct.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Struct.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.fields!=null&&message.hasOwnProperty("fields")){if(!$util.isObject(message.fields))return"fields: object expected";var key=Object.keys(message.fields);for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Struct;if(object.fields){if(typeof object.fields!=="object")throw TypeError(".google.protobuf.Struct.fields: object expected");message.fields={};for(var keys=Object.keys(object.fields),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Value;while(reader.pos>>3){case 1:{message.nullValue=reader.int32();break}case 2:{message.numberValue=reader.double();break}case 3:{message.stringValue=reader.string();break}case 4:{message.boolValue=reader.bool();break}case 5:{message.structValue=$root.google.protobuf.Struct.decode(reader,reader.uint32(),undefined,long+1);break}case 6:{message.listValue=$root.google.protobuf.ListValue.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Value.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Value.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.nullValue!=null&&message.hasOwnProperty("nullValue")){properties.kind=1;switch(message.nullValue){default:return"nullValue: enum value expected";case 0:break}}if(message.numberValue!=null&&message.hasOwnProperty("numberValue")){if(properties.kind===1)return"kind: multiple values";properties.kind=1;if(typeof message.numberValue!=="number")return"numberValue: number expected"}if(message.stringValue!=null&&message.hasOwnProperty("stringValue")){if(properties.kind===1)return"kind: multiple values";properties.kind=1;if(!$util.isString(message.stringValue))return"stringValue: string expected"}if(message.boolValue!=null&&message.hasOwnProperty("boolValue")){if(properties.kind===1)return"kind: multiple values";properties.kind=1;if(typeof message.boolValue!=="boolean")return"boolValue: boolean expected"}if(message.structValue!=null&&message.hasOwnProperty("structValue")){if(properties.kind===1)return"kind: multiple values";properties.kind=1;{var error=$root.google.protobuf.Struct.verify(message.structValue,long+1);if(error)return"structValue."+error}}if(message.listValue!=null&&message.hasOwnProperty("listValue")){if(properties.kind===1)return"kind: multiple values";properties.kind=1;{var error=$root.google.protobuf.ListValue.verify(message.listValue,long+1);if(error)return"listValue."+error}}return null};Value.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Value)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Value;switch(object.nullValue){default:if(typeof object.nullValue==="number"){message.nullValue=object.nullValue;break}break;case"NULL_VALUE":case 0:message.nullValue=0;break}if(object.numberValue!=null)message.numberValue=Number(object.numberValue);if(object.stringValue!=null)message.stringValue=String(object.stringValue);if(object.boolValue!=null)message.boolValue=Boolean(object.boolValue);if(object.structValue!=null){if(typeof object.structValue!=="object")throw TypeError(".google.protobuf.Value.structValue: object expected");message.structValue=$root.google.protobuf.Struct.fromObject(object.structValue,long+1)}if(object.listValue!=null){if(typeof object.listValue!=="object")throw TypeError(".google.protobuf.Value.listValue: object expected");message.listValue=$root.google.protobuf.ListValue.fromObject(object.listValue,long+1)}return message};Value.toObject=function toObject(message,options){if(!options)options={};var object={};if(message.nullValue!=null&&message.hasOwnProperty("nullValue")){object.nullValue=options.enums===String?$root.google.protobuf.NullValue[message.nullValue]===undefined?message.nullValue:$root.google.protobuf.NullValue[message.nullValue]:message.nullValue;if(options.oneofs)object.kind="nullValue"}if(message.numberValue!=null&&message.hasOwnProperty("numberValue")){object.numberValue=options.json&&!isFinite(message.numberValue)?String(message.numberValue):message.numberValue;if(options.oneofs)object.kind="numberValue"}if(message.stringValue!=null&&message.hasOwnProperty("stringValue")){object.stringValue=message.stringValue;if(options.oneofs)object.kind="stringValue"}if(message.boolValue!=null&&message.hasOwnProperty("boolValue")){object.boolValue=message.boolValue;if(options.oneofs)object.kind="boolValue"}if(message.structValue!=null&&message.hasOwnProperty("structValue")){object.structValue=$root.google.protobuf.Struct.toObject(message.structValue,options);if(options.oneofs)object.kind="structValue"}if(message.listValue!=null&&message.hasOwnProperty("listValue")){object.listValue=$root.google.protobuf.ListValue.toObject(message.listValue,options);if(options.oneofs)object.kind="listValue"}return object};Value.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Value"};return Value}();protobuf.NullValue=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="NULL_VALUE"]=0;return values}();protobuf.ListValue=function(){function ListValue(properties){this.values=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.ListValue;while(reader.pos>>3){case 1:{if(!(message.values&&message.values.length))message.values=[];message.values.push($root.google.protobuf.Value.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};ListValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.values!=null&&message.hasOwnProperty("values")){if(!Array.isArray(message.values))return"values: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.ListValue;if(object.values){if(!Array.isArray(object.values))throw TypeError(".google.protobuf.ListValue.values: array expected");message.values=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.DoubleValue;while(reader.pos>>3){case 1:{message.value=reader.double();break}default:reader.skipType(tag&7,long);break}}return message};DoubleValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DoubleValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(typeof message.value!=="number")return"value: number expected";return null};DoubleValue.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.DoubleValue)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.DoubleValue;if(object.value!=null)message.value=Number(object.value);return message};DoubleValue.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.value=0;if(message.value!=null&&message.hasOwnProperty("value"))object.value=options.json&&!isFinite(message.value)?String(message.value):message.value;return object};DoubleValue.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DoubleValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.DoubleValue"};return DoubleValue}();protobuf.FloatValue=function(){function FloatValue(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.FloatValue;while(reader.pos>>3){case 1:{message.value=reader.float();break}default:reader.skipType(tag&7,long);break}}return message};FloatValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};FloatValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(typeof message.value!=="number")return"value: number expected";return null};FloatValue.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.FloatValue)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.FloatValue;if(object.value!=null)message.value=Number(object.value);return message};FloatValue.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.value=0;if(message.value!=null&&message.hasOwnProperty("value"))object.value=options.json&&!isFinite(message.value)?String(message.value):message.value;return object};FloatValue.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};FloatValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.FloatValue"};return FloatValue}();protobuf.Int64Value=function(){function Int64Value(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Int64Value;while(reader.pos>>3){case 1:{message.value=reader.int64();break}default:reader.skipType(tag&7,long);break}}return message};Int64Value.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Int64Value.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(!$util.isInteger(message.value)&&!(message.value&&$util.isInteger(message.value.low)&&$util.isInteger(message.value.high)))return"value: integer|Long expected";return null};Int64Value.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Int64Value)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Int64Value;if(object.value!=null)if($util.Long)(message.value=$util.Long.fromValue(object.value)).unsigned=false;else if(typeof object.value==="string")message.value=parseInt(object.value,10);else if(typeof object.value==="number")message.value=object.value;else if(typeof object.value==="object")message.value=new $util.LongBits(object.value.low>>>0,object.value.high>>>0).toNumber();return message};Int64Value.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)if($util.Long){var long=new $util.Long(0,0,false);object.value=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.value=options.longs===String?"0":0;if(message.value!=null&&message.hasOwnProperty("value"))if(typeof message.value==="number")object.value=options.longs===String?String(message.value):message.value;else object.value=options.longs===String?$util.Long.prototype.toString.call(message.value):options.longs===Number?new $util.LongBits(message.value.low>>>0,message.value.high>>>0).toNumber():message.value;return object};Int64Value.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Int64Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Int64Value"};return Int64Value}();protobuf.UInt64Value=function(){function UInt64Value(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.UInt64Value;while(reader.pos>>3){case 1:{message.value=reader.uint64();break}default:reader.skipType(tag&7,long);break}}return message};UInt64Value.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UInt64Value.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(!$util.isInteger(message.value)&&!(message.value&&$util.isInteger(message.value.low)&&$util.isInteger(message.value.high)))return"value: integer|Long expected";return null};UInt64Value.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.UInt64Value)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.UInt64Value;if(object.value!=null)if($util.Long)(message.value=$util.Long.fromValue(object.value)).unsigned=true;else if(typeof object.value==="string")message.value=parseInt(object.value,10);else if(typeof object.value==="number")message.value=object.value;else if(typeof object.value==="object")message.value=new $util.LongBits(object.value.low>>>0,object.value.high>>>0).toNumber(true);return message};UInt64Value.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)if($util.Long){var long=new $util.Long(0,0,true);object.value=options.longs===String?long.toString():options.longs===Number?long.toNumber():long}else object.value=options.longs===String?"0":0;if(message.value!=null&&message.hasOwnProperty("value"))if(typeof message.value==="number")object.value=options.longs===String?String(message.value):message.value;else object.value=options.longs===String?$util.Long.prototype.toString.call(message.value):options.longs===Number?new $util.LongBits(message.value.low>>>0,message.value.high>>>0).toNumber(true):message.value;return object};UInt64Value.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UInt64Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.UInt64Value"};return UInt64Value}();protobuf.Int32Value=function(){function Int32Value(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.Int32Value;while(reader.pos>>3){case 1:{message.value=reader.int32();break}default:reader.skipType(tag&7,long);break}}return message};Int32Value.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Int32Value.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(!$util.isInteger(message.value))return"value: integer expected";return null};Int32Value.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.Int32Value)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.Int32Value;if(object.value!=null)message.value=object.value|0;return message};Int32Value.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.value=0;if(message.value!=null&&message.hasOwnProperty("value"))object.value=message.value;return object};Int32Value.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Int32Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.Int32Value"};return Int32Value}();protobuf.UInt32Value=function(){function UInt32Value(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.UInt32Value;while(reader.pos>>3){case 1:{message.value=reader.uint32();break}default:reader.skipType(tag&7,long);break}}return message};UInt32Value.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};UInt32Value.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(!$util.isInteger(message.value))return"value: integer expected";return null};UInt32Value.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.UInt32Value)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.UInt32Value;if(object.value!=null)message.value=object.value>>>0;return message};UInt32Value.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.value=0;if(message.value!=null&&message.hasOwnProperty("value"))object.value=message.value;return object};UInt32Value.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};UInt32Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.UInt32Value"};return UInt32Value}();protobuf.BoolValue=function(){function BoolValue(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.BoolValue;while(reader.pos>>3){case 1:{message.value=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};BoolValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BoolValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(typeof message.value!=="boolean")return"value: boolean expected";return null};BoolValue.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.BoolValue)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.BoolValue;if(object.value!=null)message.value=Boolean(object.value);return message};BoolValue.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.value=false;if(message.value!=null&&message.hasOwnProperty("value"))object.value=message.value;return object};BoolValue.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BoolValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.BoolValue"};return BoolValue}();protobuf.StringValue=function(){function StringValue(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.StringValue;while(reader.pos>>3){case 1:{message.value=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};StringValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};StringValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(!$util.isString(message.value))return"value: string expected";return null};StringValue.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.StringValue)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.StringValue;if(object.value!=null)message.value=String(object.value);return message};StringValue.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.value="";if(message.value!=null&&message.hasOwnProperty("value"))object.value=message.value;return object};StringValue.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};StringValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.StringValue"};return StringValue}();protobuf.BytesValue=function(){function BytesValue(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.protobuf.BytesValue;while(reader.pos>>3){case 1:{message.value=reader.bytes();break}default:reader.skipType(tag&7,long);break}}return message};BytesValue.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};BytesValue.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.value!=null&&message.hasOwnProperty("value"))if(!(message.value&&typeof message.value.length==="number"||$util.isString(message.value)))return"value: buffer expected";return null};BytesValue.fromObject=function fromObject(object,long){if(object instanceof $root.google.protobuf.BytesValue)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.protobuf.BytesValue;if(object.value!=null)if(typeof object.value==="string")$util.base64.decode(object.value,message.value=$util.newBuffer($util.base64.length(object.value)),0);else if(object.value.length>=0)message.value=object.value;return message};BytesValue.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)if(options.bytes===String)object.value="";else{object.value=[];if(options.bytes!==Array)object.value=$util.newBuffer(object.value)}if(message.value!=null&&message.hasOwnProperty("value"))object.value=options.bytes===String?$util.base64.encode(message.value,0,message.value.length):options.bytes===Array?Array.prototype.slice.call(message.value):message.value;return object};BytesValue.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};BytesValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.protobuf.BytesValue"};return BytesValue}();return protobuf}();google.type=function(){var type={};type.DayOfWeek=function(){var valuesById={},values=Object.create(valuesById);values[valuesById[0]="DAY_OF_WEEK_UNSPECIFIED"]=0;values[valuesById[1]="MONDAY"]=1;values[valuesById[2]="TUESDAY"]=2;values[valuesById[3]="WEDNESDAY"]=3;values[valuesById[4]="THURSDAY"]=4;values[valuesById[5]="FRIDAY"]=5;values[valuesById[6]="SATURDAY"]=6;values[valuesById[7]="SUNDAY"]=7;return values}();type.LatLng=function(){function LatLng(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.type.LatLng;while(reader.pos>>3){case 1:{message.latitude=reader.double();break}case 2:{message.longitude=reader.double();break}default:reader.skipType(tag&7,long);break}}return message};LatLng.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};LatLng.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.latitude!=null&&message.hasOwnProperty("latitude"))if(typeof message.latitude!=="number")return"latitude: number expected";if(message.longitude!=null&&message.hasOwnProperty("longitude"))if(typeof message.longitude!=="number")return"longitude: number expected";return null};LatLng.fromObject=function fromObject(object,long){if(object instanceof $root.google.type.LatLng)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.type.LatLng;if(object.latitude!=null)message.latitude=Number(object.latitude);if(object.longitude!=null)message.longitude=Number(object.longitude);return message};LatLng.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.latitude=0;object.longitude=0}if(message.latitude!=null&&message.hasOwnProperty("latitude"))object.latitude=options.json&&!isFinite(message.latitude)?String(message.latitude):message.latitude;if(message.longitude!=null&&message.hasOwnProperty("longitude"))object.longitude=options.json&&!isFinite(message.longitude)?String(message.longitude):message.longitude;return object};LatLng.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};LatLng.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.type.LatLng"};return LatLng}();return type}();google.longrunning=function(){var longrunning={};longrunning.Operations=function(){function Operations(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited)}(Operations.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=Operations;Operations.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited)};Object.defineProperty(Operations.prototype.listOperations=function listOperations(request,callback){return this.rpcCall(listOperations,$root.google.longrunning.ListOperationsRequest,$root.google.longrunning.ListOperationsResponse,request,callback)},"name",{value:"ListOperations"});Object.defineProperty(Operations.prototype.getOperation=function getOperation(request,callback){return this.rpcCall(getOperation,$root.google.longrunning.GetOperationRequest,$root.google.longrunning.Operation,request,callback)},"name",{value:"GetOperation"});Object.defineProperty(Operations.prototype.deleteOperation=function deleteOperation(request,callback){return this.rpcCall(deleteOperation,$root.google.longrunning.DeleteOperationRequest,$root.google.protobuf.Empty,request,callback)},"name",{value:"DeleteOperation"});Object.defineProperty(Operations.prototype.cancelOperation=function cancelOperation(request,callback){return this.rpcCall(cancelOperation,$root.google.longrunning.CancelOperationRequest,$root.google.protobuf.Empty,request,callback)},"name",{value:"CancelOperation"});Object.defineProperty(Operations.prototype.waitOperation=function waitOperation(request,callback){return this.rpcCall(waitOperation,$root.google.longrunning.WaitOperationRequest,$root.google.longrunning.Operation,request,callback)},"name",{value:"WaitOperation"});return Operations}();longrunning.Operation=function(){function Operation(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.longrunning.Operation;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{message.metadata=$root.google.protobuf.Any.decode(reader,reader.uint32(),undefined,long+1);break}case 3:{message.done=reader.bool();break}case 4:{message.error=$root.google.rpc.Status.decode(reader,reader.uint32(),undefined,long+1);break}case 5:{message.response=$root.google.protobuf.Any.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};Operation.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Operation.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";var properties={};if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.metadata!=null&&message.hasOwnProperty("metadata")){var error=$root.google.protobuf.Any.verify(message.metadata,long+1);if(error)return"metadata."+error}if(message.done!=null&&message.hasOwnProperty("done"))if(typeof message.done!=="boolean")return"done: boolean expected";if(message.error!=null&&message.hasOwnProperty("error")){properties.result=1;{var error=$root.google.rpc.Status.verify(message.error,long+1);if(error)return"error."+error}}if(message.response!=null&&message.hasOwnProperty("response")){if(properties.result===1)return"result: multiple values";properties.result=1;{var error=$root.google.protobuf.Any.verify(message.response,long+1);if(error)return"response."+error}}return null};Operation.fromObject=function fromObject(object,long){if(object instanceof $root.google.longrunning.Operation)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.longrunning.Operation;if(object.name!=null)message.name=String(object.name);if(object.metadata!=null){if(typeof object.metadata!=="object")throw TypeError(".google.longrunning.Operation.metadata: object expected");message.metadata=$root.google.protobuf.Any.fromObject(object.metadata,long+1)}if(object.done!=null)message.done=Boolean(object.done);if(object.error!=null){if(typeof object.error!=="object")throw TypeError(".google.longrunning.Operation.error: object expected");message.error=$root.google.rpc.Status.fromObject(object.error,long+1)}if(object.response!=null){if(typeof object.response!=="object")throw TypeError(".google.longrunning.Operation.response: object expected");message.response=$root.google.protobuf.Any.fromObject(object.response,long+1)}return message};Operation.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.metadata=null;object.done=false}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.metadata!=null&&message.hasOwnProperty("metadata"))object.metadata=$root.google.protobuf.Any.toObject(message.metadata,options);if(message.done!=null&&message.hasOwnProperty("done"))object.done=message.done;if(message.error!=null&&message.hasOwnProperty("error")){object.error=$root.google.rpc.Status.toObject(message.error,options);if(options.oneofs)object.result="error"}if(message.response!=null&&message.hasOwnProperty("response")){object.response=$root.google.protobuf.Any.toObject(message.response,options);if(options.oneofs)object.result="response"}return object};Operation.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};Operation.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.longrunning.Operation"};return Operation}();longrunning.GetOperationRequest=function(){function GetOperationRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.longrunning.GetOperationRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};GetOperationRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};GetOperationRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};GetOperationRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.longrunning.GetOperationRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.longrunning.GetOperationRequest;if(object.name!=null)message.name=String(object.name);return message};GetOperationRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};GetOperationRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};GetOperationRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.longrunning.GetOperationRequest"};return GetOperationRequest}();longrunning.ListOperationsRequest=function(){function ListOperationsRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.longrunning.ListOperationsRequest;while(reader.pos>>3){case 4:{message.name=reader.string();break}case 1:{message.filter=reader.string();break}case 2:{message.pageSize=reader.int32();break}case 3:{message.pageToken=reader.string();break}case 5:{message.returnPartialSuccess=reader.bool();break}default:reader.skipType(tag&7,long);break}}return message};ListOperationsRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListOperationsRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.filter!=null&&message.hasOwnProperty("filter"))if(!$util.isString(message.filter))return"filter: string expected";if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))if(!$util.isInteger(message.pageSize))return"pageSize: integer expected";if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))if(!$util.isString(message.pageToken))return"pageToken: string expected";if(message.returnPartialSuccess!=null&&message.hasOwnProperty("returnPartialSuccess"))if(typeof message.returnPartialSuccess!=="boolean")return"returnPartialSuccess: boolean expected";return null};ListOperationsRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.longrunning.ListOperationsRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.longrunning.ListOperationsRequest;if(object.name!=null)message.name=String(object.name);if(object.filter!=null)message.filter=String(object.filter);if(object.pageSize!=null)message.pageSize=object.pageSize|0;if(object.pageToken!=null)message.pageToken=String(object.pageToken);if(object.returnPartialSuccess!=null)message.returnPartialSuccess=Boolean(object.returnPartialSuccess);return message};ListOperationsRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.filter="";object.pageSize=0;object.pageToken="";object.name="";object.returnPartialSuccess=false}if(message.filter!=null&&message.hasOwnProperty("filter"))object.filter=message.filter;if(message.pageSize!=null&&message.hasOwnProperty("pageSize"))object.pageSize=message.pageSize;if(message.pageToken!=null&&message.hasOwnProperty("pageToken"))object.pageToken=message.pageToken;if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.returnPartialSuccess!=null&&message.hasOwnProperty("returnPartialSuccess"))object.returnPartialSuccess=message.returnPartialSuccess;return object};ListOperationsRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};ListOperationsRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.longrunning.ListOperationsRequest"};return ListOperationsRequest}();longrunning.ListOperationsResponse=function(){function ListOperationsResponse(properties){this.operations=[];this.unreachable=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.longrunning.ListOperationsResponse;while(reader.pos>>3){case 1:{if(!(message.operations&&message.operations.length))message.operations=[];message.operations.push($root.google.longrunning.Operation.decode(reader,reader.uint32(),undefined,long+1));break}case 2:{message.nextPageToken=reader.string();break}case 3:{if(!(message.unreachable&&message.unreachable.length))message.unreachable=[];message.unreachable.push(reader.string());break}default:reader.skipType(tag&7,long);break}}return message};ListOperationsResponse.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};ListOperationsResponse.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.operations!=null&&message.hasOwnProperty("operations")){if(!Array.isArray(message.operations))return"operations: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.longrunning.ListOperationsResponse;if(object.operations){if(!Array.isArray(object.operations))throw TypeError(".google.longrunning.ListOperationsResponse.operations: array expected");message.operations=[];for(var i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.longrunning.CancelOperationRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};CancelOperationRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};CancelOperationRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};CancelOperationRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.longrunning.CancelOperationRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.longrunning.CancelOperationRequest;if(object.name!=null)message.name=String(object.name);return message};CancelOperationRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};CancelOperationRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};CancelOperationRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.longrunning.CancelOperationRequest"};return CancelOperationRequest}();longrunning.DeleteOperationRequest=function(){function DeleteOperationRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.longrunning.DeleteOperationRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};DeleteOperationRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};DeleteOperationRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";return null};DeleteOperationRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.longrunning.DeleteOperationRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.longrunning.DeleteOperationRequest;if(object.name!=null)message.name=String(object.name);return message};DeleteOperationRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults)object.name="";if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;return object};DeleteOperationRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};DeleteOperationRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.longrunning.DeleteOperationRequest"};return DeleteOperationRequest}();longrunning.WaitOperationRequest=function(){function WaitOperationRequest(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.longrunning.WaitOperationRequest;while(reader.pos>>3){case 1:{message.name=reader.string();break}case 2:{message.timeout=$root.google.protobuf.Duration.decode(reader,reader.uint32(),undefined,long+1);break}default:reader.skipType(tag&7,long);break}}return message};WaitOperationRequest.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};WaitOperationRequest.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.name!=null&&message.hasOwnProperty("name"))if(!$util.isString(message.name))return"name: string expected";if(message.timeout!=null&&message.hasOwnProperty("timeout")){var error=$root.google.protobuf.Duration.verify(message.timeout,long+1);if(error)return"timeout."+error}return null};WaitOperationRequest.fromObject=function fromObject(object,long){if(object instanceof $root.google.longrunning.WaitOperationRequest)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.longrunning.WaitOperationRequest;if(object.name!=null)message.name=String(object.name);if(object.timeout!=null){if(typeof object.timeout!=="object")throw TypeError(".google.longrunning.WaitOperationRequest.timeout: object expected");message.timeout=$root.google.protobuf.Duration.fromObject(object.timeout,long+1)}return message};WaitOperationRequest.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.name="";object.timeout=null}if(message.name!=null&&message.hasOwnProperty("name"))object.name=message.name;if(message.timeout!=null&&message.hasOwnProperty("timeout"))object.timeout=$root.google.protobuf.Duration.toObject(message.timeout,options);return object};WaitOperationRequest.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};WaitOperationRequest.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.longrunning.WaitOperationRequest"};return WaitOperationRequest}();longrunning.OperationInfo=function(){function OperationInfo(properties){if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.longrunning.OperationInfo;while(reader.pos>>3){case 1:{message.responseType=reader.string();break}case 2:{message.metadataType=reader.string();break}default:reader.skipType(tag&7,long);break}}return message};OperationInfo.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};OperationInfo.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.responseType!=null&&message.hasOwnProperty("responseType"))if(!$util.isString(message.responseType))return"responseType: string expected";if(message.metadataType!=null&&message.hasOwnProperty("metadataType"))if(!$util.isString(message.metadataType))return"metadataType: string expected";return null};OperationInfo.fromObject=function fromObject(object,long){if(object instanceof $root.google.longrunning.OperationInfo)return object;if(long===undefined)long=0;if(long>$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.longrunning.OperationInfo;if(object.responseType!=null)message.responseType=String(object.responseType);if(object.metadataType!=null)message.metadataType=String(object.metadataType);return message};OperationInfo.toObject=function toObject(message,options){if(!options)options={};var object={};if(options.defaults){object.responseType="";object.metadataType=""}if(message.responseType!=null&&message.hasOwnProperty("responseType"))object.responseType=message.responseType;if(message.metadataType!=null&&message.hasOwnProperty("metadataType"))object.metadataType=message.metadataType;return object};OperationInfo.prototype.toJSON=function toJSON(){return this.constructor.toObject(this,$protobuf.util.toJSONOptions)};OperationInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix="type.googleapis.com"}return typeUrlPrefix+"/google.longrunning.OperationInfo"};return OperationInfo}();return longrunning}();google.rpc=function(){var rpc={};rpc.Status=function(){function Status(properties){this.details=[];if(properties)for(var keys=Object.keys(properties),i=0;i$Reader.recursionLimit)throw Error("maximum nesting depth exceeded");var end=length===undefined?reader.len:reader.pos+length,message=new $root.google.rpc.Status;while(reader.pos>>3){case 1:{message.code=reader.int32();break}case 2:{message.message=reader.string();break}case 3:{if(!(message.details&&message.details.length))message.details=[];message.details.push($root.google.protobuf.Any.decode(reader,reader.uint32(),undefined,long+1));break}default:reader.skipType(tag&7,long);break}}return message};Status.decodeDelimited=function decodeDelimited(reader){if(!(reader instanceof $Reader))reader=new $Reader(reader);return this.decode(reader,reader.uint32())};Status.verify=function verify(message,long){if(typeof message!=="object"||message===null)return"object expected";if(long===undefined)long=0;if(long>$util.recursionLimit)return"maximum nesting depth exceeded";if(message.code!=null&&message.hasOwnProperty("code"))if(!$util.isInteger(message.code))return"code: integer expected";if(message.message!=null&&message.hasOwnProperty("message"))if(!$util.isString(message.message))return"message: string expected";if(message.details!=null&&message.hasOwnProperty("details")){if(!Array.isArray(message.details))return"details: array expected";for(var i=0;i$util.recursionLimit)throw Error("maximum nesting depth exceeded");var message=new $root.google.rpc.Status;if(object.code!=null)message.code=object.code|0;if(object.message!=null)message.message=String(object.message);if(object.details){if(!Array.isArray(object.details))throw TypeError(".google.rpc.Status.details: array expected");message.details=[];for(var i=0;i { console.log(response) }); - stream.on('error', (err) => { throw(err) }); - stream.on('end', () => { /* API call completed */ }); - } - - callBatchGetDocuments(); - // [END firestore_v1beta1_generated_Firestore_BatchGetDocuments_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.batch_write.js b/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.batch_write.js deleted file mode 100644 index 0d8dec79b8a1..000000000000 --- a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.batch_write.js +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(database) { - // [START firestore_v1beta1_generated_Firestore_BatchWrite_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The database name. In the format: - * `projects/{project_id}/databases/{database_id}`. - */ - // const database = 'abc123' - /** - * The writes to apply. - * Method does not apply writes atomically and does not guarantee ordering. - * Each write succeeds or fails independently. You cannot write to the same - * document more than once per request. - */ - // const writes = [1,2,3,4] - /** - * Labels associated with this batch write. - */ - // const labels = [1,2,3,4] - - // Imports the Firestore library - const {FirestoreClient} = require('@google-cloud/firestore-api').v1beta1; - - // Instantiates a client - const firestoreClient = new FirestoreClient(); - - async function callBatchWrite() { - // Construct request - const request = { - database, - }; - - // Run request - const response = await firestoreClient.batchWrite(request); - console.log(response); - } - - callBatchWrite(); - // [END firestore_v1beta1_generated_Firestore_BatchWrite_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.begin_transaction.js b/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.begin_transaction.js deleted file mode 100644 index ea1a04abbb46..000000000000 --- a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.begin_transaction.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(database) { - // [START firestore_v1beta1_generated_Firestore_BeginTransaction_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The database name. In the format: - * `projects/{project_id}/databases/{database_id}`. - */ - // const database = 'abc123' - /** - * The options for the transaction. - * Defaults to a read-write transaction. - */ - // const options = {} - - // Imports the Firestore library - const {FirestoreClient} = require('@google-cloud/firestore-api').v1beta1; - - // Instantiates a client - const firestoreClient = new FirestoreClient(); - - async function callBeginTransaction() { - // Construct request - const request = { - database, - }; - - // Run request - const response = await firestoreClient.beginTransaction(request); - console.log(response); - } - - callBeginTransaction(); - // [END firestore_v1beta1_generated_Firestore_BeginTransaction_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.commit.js b/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.commit.js deleted file mode 100644 index 06278a65ed2a..000000000000 --- a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.commit.js +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(database) { - // [START firestore_v1beta1_generated_Firestore_Commit_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The database name. In the format: - * `projects/{project_id}/databases/{database_id}`. - */ - // const database = 'abc123' - /** - * The writes to apply. - * Always executed atomically and in order. - */ - // const writes = [1,2,3,4] - /** - * If set, applies all writes in this transaction, and commits it. - */ - // const transaction = Buffer.from('string') - - // Imports the Firestore library - const {FirestoreClient} = require('@google-cloud/firestore-api').v1beta1; - - // Instantiates a client - const firestoreClient = new FirestoreClient(); - - async function callCommit() { - // Construct request - const request = { - database, - }; - - // Run request - const response = await firestoreClient.commit(request); - console.log(response); - } - - callCommit(); - // [END firestore_v1beta1_generated_Firestore_Commit_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.create_document.js b/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.create_document.js deleted file mode 100644 index 5e73cb1466ed..000000000000 --- a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.create_document.js +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, collectionId, document) { - // [START firestore_v1beta1_generated_Firestore_CreateDocument_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The parent resource. For example: - * `projects/{project_id}/databases/{database_id}/documents` or - * `projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}` - */ - // const parent = 'abc123' - /** - * Required. The collection ID, relative to `parent`, to list. For example: `chatrooms`. - */ - // const collectionId = 'abc123' - /** - * The client-assigned document ID to use for this document. - * Optional. If not specified, an ID will be assigned by the service. - */ - // const documentId = 'abc123' - /** - * Required. The document to create. `name` must not be set. - */ - // const document = {} - /** - * The fields to return. If not set, returns all fields. - * If the document has a field that is not present in this mask, that field - * will not be returned in the response. - */ - // const mask = {} - - // Imports the Firestore library - const {FirestoreClient} = require('@google-cloud/firestore-api').v1beta1; - - // Instantiates a client - const firestoreClient = new FirestoreClient(); - - async function callCreateDocument() { - // Construct request - const request = { - parent, - collectionId, - document, - }; - - // Run request - const response = await firestoreClient.createDocument(request); - console.log(response); - } - - callCreateDocument(); - // [END firestore_v1beta1_generated_Firestore_CreateDocument_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.delete_document.js b/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.delete_document.js deleted file mode 100644 index 6af70bf722a0..000000000000 --- a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.delete_document.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START firestore_v1beta1_generated_Firestore_DeleteDocument_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Document to delete. In the format: - * `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - */ - // const name = 'abc123' - /** - * An optional precondition on the document. - * The request will fail if this is set and not met by the target document. - */ - // const currentDocument = {} - - // Imports the Firestore library - const {FirestoreClient} = require('@google-cloud/firestore-api').v1beta1; - - // Instantiates a client - const firestoreClient = new FirestoreClient(); - - async function callDeleteDocument() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await firestoreClient.deleteDocument(request); - console.log(response); - } - - callDeleteDocument(); - // [END firestore_v1beta1_generated_Firestore_DeleteDocument_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.get_document.js b/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.get_document.js deleted file mode 100644 index 59066c2511df..000000000000 --- a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.get_document.js +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START firestore_v1beta1_generated_Firestore_GetDocument_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The resource name of the Document to get. In the format: - * `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - */ - // const name = 'abc123' - /** - * The fields to return. If not set, returns all fields. - * If the document has a field that is not present in this mask, that field - * will not be returned in the response. - */ - // const mask = {} - /** - * Reads the document in a transaction. - */ - // const transaction = Buffer.from('string') - /** - * Reads the version of the document at the given time. - * This may not be older than 270 seconds. - */ - // const readTime = {} - - // Imports the Firestore library - const {FirestoreClient} = require('@google-cloud/firestore-api').v1beta1; - - // Instantiates a client - const firestoreClient = new FirestoreClient(); - - async function callGetDocument() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await firestoreClient.getDocument(request); - console.log(response); - } - - callGetDocument(); - // [END firestore_v1beta1_generated_Firestore_GetDocument_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.list_collection_ids.js b/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.list_collection_ids.js deleted file mode 100644 index 26bbc70a91fa..000000000000 --- a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.list_collection_ids.js +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START firestore_v1beta1_generated_Firestore_ListCollectionIds_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The parent document. In the format: - * `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - * For example: - * `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom` - */ - // const parent = 'abc123' - /** - * The maximum number of results to return. - */ - // const pageSize = 1234 - /** - * A page token. Must be a value from - * ListCollectionIdsResponse google.firestore.v1beta1.ListCollectionIdsResponse. - */ - // const pageToken = 'abc123' - - // Imports the Firestore library - const {FirestoreClient} = require('@google-cloud/firestore-api').v1beta1; - - // Instantiates a client - const firestoreClient = new FirestoreClient(); - - async function callListCollectionIds() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = firestoreClient.listCollectionIdsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListCollectionIds(); - // [END firestore_v1beta1_generated_Firestore_ListCollectionIds_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.list_documents.js b/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.list_documents.js deleted file mode 100644 index 0003d39996ad..000000000000 --- a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.list_documents.js +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, collectionId) { - // [START firestore_v1beta1_generated_Firestore_ListDocuments_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The parent resource name. In the format: - * `projects/{project_id}/databases/{database_id}/documents` or - * `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - * For example: - * `projects/my-project/databases/my-database/documents` or - * `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom` - */ - // const parent = 'abc123' - /** - * Required. The collection ID, relative to `parent`, to list. For example: `chatrooms` - * or `messages`. - */ - // const collectionId = 'abc123' - /** - * The maximum number of documents to return. - */ - // const pageSize = 1234 - /** - * The `next_page_token` value returned from a previous List request, if any. - */ - // const pageToken = 'abc123' - /** - * The order to sort results by. For example: `priority desc, name`. - */ - // const orderBy = 'abc123' - /** - * The fields to return. If not set, returns all fields. - * If a document has a field that is not present in this mask, that field - * will not be returned in the response. - */ - // const mask = {} - /** - * Reads documents in a transaction. - */ - // const transaction = Buffer.from('string') - /** - * Reads documents as they were at the given time. - * This may not be older than 270 seconds. - */ - // const readTime = {} - /** - * If the list should show missing documents. A missing document is a - * document that does not exist but has sub-documents. These documents will - * be returned with a key but will not have fields, Document.create_time google.firestore.v1beta1.Document.create_time, - * or Document.update_time google.firestore.v1beta1.Document.update_time set. - * Requests with `show_missing` may not specify `where` or - * `order_by`. - */ - // const showMissing = true - - // Imports the Firestore library - const {FirestoreClient} = require('@google-cloud/firestore-api').v1beta1; - - // Instantiates a client - const firestoreClient = new FirestoreClient(); - - async function callListDocuments() { - // Construct request - const request = { - parent, - collectionId, - }; - - // Run request - const iterable = firestoreClient.listDocumentsAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListDocuments(); - // [END firestore_v1beta1_generated_Firestore_ListDocuments_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.listen.js b/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.listen.js deleted file mode 100644 index e737b189a984..000000000000 --- a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.listen.js +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(database) { - // [START firestore_v1beta1_generated_Firestore_Listen_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The database name. In the format: - * `projects/{project_id}/databases/{database_id}`. - */ - // const database = 'abc123' - /** - * A target to add to this stream. - */ - // const addTarget = {} - /** - * The ID of a target to remove from this stream. - */ - // const removeTarget = 1234 - /** - * Labels associated with this target change. - */ - // const labels = [1,2,3,4] - - // Imports the Firestore library - const {FirestoreClient} = require('@google-cloud/firestore-api').v1beta1; - - // Instantiates a client - const firestoreClient = new FirestoreClient(); - - async function callListen() { - // Construct request - const request = { - database, - }; - - // Run request - const stream = await firestoreClient.listen(); - stream.on('data', (response) => { console.log(response) }); - stream.on('error', (err) => { throw(err) }); - stream.on('end', () => { /* API call completed */ }); - stream.write(request); - stream.end(); - } - - callListen(); - // [END firestore_v1beta1_generated_Firestore_Listen_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.partition_query.js b/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.partition_query.js deleted file mode 100644 index bac795dd8c5c..000000000000 --- a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.partition_query.js +++ /dev/null @@ -1,105 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START firestore_v1beta1_generated_Firestore_PartitionQuery_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The parent resource name. In the format: - * `projects/{project_id}/databases/{database_id}/documents`. - * Document resource names are not supported; only database resource names - * can be specified. - */ - // const parent = 'abc123' - /** - * A structured query. - * Query must specify collection with all descendants and be ordered by name - * ascending. Other filters, order bys, limits, offsets, and start/end - * cursors are not supported. - */ - // const structuredQuery = {} - /** - * The desired maximum number of partition points. - * The partitions may be returned across multiple pages of results. - * The number must be positive. The actual number of partitions - * returned may be fewer. - * For example, this may be set to one fewer than the number of parallel - * queries to be run, or in running a data pipeline job, one fewer than the - * number of workers or compute instances available. - */ - // const partitionCount = 1234 - /** - * The `next_page_token` value returned from a previous call to - * PartitionQuery that may be used to get an additional set of results. - * There are no ordering guarantees between sets of results. Thus, using - * multiple sets of results will require merging the different result sets. - * For example, two subsequent calls using a page_token may return: - * * cursor B, cursor M, cursor Q - * * cursor A, cursor U, cursor W - * To obtain a complete result set ordered with respect to the results of the - * query supplied to PartitionQuery, the results sets should be merged: - * cursor A, cursor B, cursor M, cursor Q, cursor U, cursor W - */ - // const pageToken = 'abc123' - /** - * The maximum number of partitions to return in this call, subject to - * `partition_count`. - * For example, if `partition_count` = 10 and `page_size` = 8, the first call - * to PartitionQuery will return up to 8 partitions and a `next_page_token` - * if more results exist. A second call to PartitionQuery will return up to - * 2 partitions, to complete the total of 10 specified in `partition_count`. - */ - // const pageSize = 1234 - - // Imports the Firestore library - const {FirestoreClient} = require('@google-cloud/firestore-api').v1beta1; - - // Instantiates a client - const firestoreClient = new FirestoreClient(); - - async function callPartitionQuery() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = firestoreClient.partitionQueryAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callPartitionQuery(); - // [END firestore_v1beta1_generated_Firestore_PartitionQuery_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.rollback.js b/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.rollback.js deleted file mode 100644 index 6ed28e5f52ad..000000000000 --- a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.rollback.js +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(database, transaction) { - // [START firestore_v1beta1_generated_Firestore_Rollback_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The database name. In the format: - * `projects/{project_id}/databases/{database_id}`. - */ - // const database = 'abc123' - /** - * Required. The transaction to roll back. - */ - // const transaction = Buffer.from('string') - - // Imports the Firestore library - const {FirestoreClient} = require('@google-cloud/firestore-api').v1beta1; - - // Instantiates a client - const firestoreClient = new FirestoreClient(); - - async function callRollback() { - // Construct request - const request = { - database, - transaction, - }; - - // Run request - const response = await firestoreClient.rollback(request); - console.log(response); - } - - callRollback(); - // [END firestore_v1beta1_generated_Firestore_Rollback_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.run_query.js b/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.run_query.js deleted file mode 100644 index e63aae2b97ae..000000000000 --- a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.run_query.js +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START firestore_v1beta1_generated_Firestore_RunQuery_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The parent resource name. In the format: - * `projects/{project_id}/databases/{database_id}/documents` or - * `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - * For example: - * `projects/my-project/databases/my-database/documents` or - * `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom` - */ - // const parent = 'abc123' - /** - * A structured query. - */ - // const structuredQuery = {} - /** - * Reads documents in a transaction. - */ - // const transaction = Buffer.from('string') - /** - * Starts a new transaction and reads the documents. - * Defaults to a read-only transaction. - * The new transaction ID will be returned as the first response in the - * stream. - */ - // const newTransaction = {} - /** - * Reads documents as they were at the given time. - * This may not be older than 270 seconds. - */ - // const readTime = {} - - // Imports the Firestore library - const {FirestoreClient} = require('@google-cloud/firestore-api').v1beta1; - - // Instantiates a client - const firestoreClient = new FirestoreClient(); - - async function callRunQuery() { - // Construct request - const request = { - parent, - }; - - // Run request - const stream = await firestoreClient.runQuery(request); - stream.on('data', (response) => { console.log(response) }); - stream.on('error', (err) => { throw(err) }); - stream.on('end', () => { /* API call completed */ }); - } - - callRunQuery(); - // [END firestore_v1beta1_generated_Firestore_RunQuery_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.update_document.js b/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.update_document.js deleted file mode 100644 index 64b5a6baabf0..000000000000 --- a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.update_document.js +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(document) { - // [START firestore_v1beta1_generated_Firestore_UpdateDocument_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The updated document. - * Creates the document if it does not already exist. - */ - // const document = {} - /** - * The fields to update. - * None of the field paths in the mask may contain a reserved name. - * If the document exists on the server and has fields not referenced in the - * mask, they are left unchanged. - * Fields referenced in the mask, but not present in the input document, are - * deleted from the document on the server. - */ - // const updateMask = {} - /** - * The fields to return. If not set, returns all fields. - * If the document has a field that is not present in this mask, that field - * will not be returned in the response. - */ - // const mask = {} - /** - * An optional precondition on the document. - * The request will fail if this is set and not met by the target document. - */ - // const currentDocument = {} - - // Imports the Firestore library - const {FirestoreClient} = require('@google-cloud/firestore-api').v1beta1; - - // Instantiates a client - const firestoreClient = new FirestoreClient(); - - async function callUpdateDocument() { - // Construct request - const request = { - document, - }; - - // Run request - const response = await firestoreClient.updateDocument(request); - console.log(response); - } - - callUpdateDocument(); - // [END firestore_v1beta1_generated_Firestore_UpdateDocument_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.write.js b/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.write.js deleted file mode 100644 index 700fbe0e0514..000000000000 --- a/packages/google-cloud-firestore-api/samples/generated/v1beta1/firestore.write.js +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(database) { - // [START firestore_v1beta1_generated_Firestore_Write_async] - /** - * This snippet has been automatically generated and should be regarded as a code template only. - * It will require modifications to work. - * It may require correct/in-range values for request initialization. - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The database name. In the format: - * `projects/{project_id}/databases/{database_id}`. - * This is only required in the first message. - */ - // const database = 'abc123' - /** - * The ID of the write stream to resume. - * This may only be set in the first message. When left empty, a new write - * stream will be created. - */ - // const streamId = 'abc123' - /** - * The writes to apply. - * Always executed atomically and in order. - * This must be empty on the first request. - * This may be empty on the last request. - * This must not be empty on all other requests. - */ - // const writes = [1,2,3,4] - /** - * A stream token that was previously sent by the server. - * The client should set this field to the token from the most recent - * WriteResponse google.firestore.v1beta1.WriteResponse it has received. This acknowledges that the client has - * received responses up to this token. After sending this token, earlier - * tokens may not be used anymore. - * The server may close the stream if there are too many unacknowledged - * responses. - * Leave this field unset when creating a new stream. To resume a stream at - * a specific point, set this field and the `stream_id` field. - * Leave this field unset when creating a new stream. - */ - // const streamToken = Buffer.from('string') - /** - * Labels associated with this write request. - */ - // const labels = [1,2,3,4] - - // Imports the Firestore library - const {FirestoreClient} = require('@google-cloud/firestore-api').v1beta1; - - // Instantiates a client - const firestoreClient = new FirestoreClient(); - - async function callWrite() { - // Construct request - const request = { - database, - }; - - // Run request - const stream = await firestoreClient.write(); - stream.on('data', (response) => { console.log(response) }); - stream.on('error', (err) => { throw(err) }); - stream.on('end', () => { /* API call completed */ }); - stream.write(request); - stream.end(); - } - - callWrite(); - // [END firestore_v1beta1_generated_Firestore_Write_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/packages/google-cloud-firestore-api/src/index.ts b/packages/google-cloud-firestore-api/src/index.ts index 12725c4d2fdd..abeb8bb0a136 100644 --- a/packages/google-cloud-firestore-api/src/index.ts +++ b/packages/google-cloud-firestore-api/src/index.ts @@ -17,14 +17,13 @@ // ** All changes to this file may be overwritten. ** import * as v1 from './v1'; -import * as v1beta1 from './v1beta1'; const FirestoreAdminClient = v1.FirestoreAdminClient; type FirestoreAdminClient = v1.FirestoreAdminClient; const FirestoreClient = v1.FirestoreClient; type FirestoreClient = v1.FirestoreClient; -export {v1, v1beta1, FirestoreAdminClient, FirestoreClient}; -export default {v1, v1beta1, FirestoreAdminClient, FirestoreClient}; +export {v1, FirestoreAdminClient, FirestoreClient}; +export default {v1, FirestoreAdminClient, FirestoreClient}; import * as protos from '../protos/protos'; export {protos}; diff --git a/packages/google-cloud-firestore-api/src/v1beta1/firestore_client.ts b/packages/google-cloud-firestore-api/src/v1beta1/firestore_client.ts deleted file mode 100644 index f8544fb3593b..000000000000 --- a/packages/google-cloud-firestore-api/src/v1beta1/firestore_client.ts +++ /dev/null @@ -1,2580 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - -/* global window */ -import type * as gax from 'google-gax'; -import type { - Callback, - CallOptions, - Descriptors, - ClientOptions, - PaginationCallback, - GaxCall, -} from 'google-gax'; -import { Transform, PassThrough } from 'stream'; -import * as protos from '../../protos/protos'; -import jsonProtos = require('../../protos/protos.json'); -import { loggingUtils as logging, decodeAnyProtosInArray } from 'google-gax'; - -/** - * Client JSON configuration object, loaded from - * `src/v1beta1/firestore_client_config.json`. - * This file defines retry strategy and timeouts for all API methods in this library. - */ -import * as gapicConfig from './firestore_client_config.json'; -const version = require('../../../package.json').version; - -/** - * The Cloud Firestore service. - * - * Cloud Firestore is a fast, fully managed, serverless, cloud-native NoSQL - * document database that simplifies storing, syncing, and querying data for - * your mobile, web, and IoT apps at global scale. Its client libraries provide - * live synchronization and offline support, while its security features and - * integrations with Firebase and Google Cloud Platform (GCP) accelerate - * building truly serverless apps. - * @class - * @memberof v1beta1 - */ -export class FirestoreClient { - private _terminated = false; - private _opts: ClientOptions; - private _providedCustomServicePath: boolean; - private _gaxModule: typeof gax | typeof gax.fallback; - private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; - private _protos: {}; - private _defaults: { [method: string]: gax.CallSettings }; - private _universeDomain: string; - private _servicePath: string; - private _log = logging.log('firestore-api'); - - auth: gax.GoogleAuth; - descriptors: Descriptors = { - page: {}, - stream: {}, - longrunning: {}, - batching: {}, - }; - warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: { [name: string]: Function }; - firestoreStub?: Promise<{ [name: string]: Function }>; - - /** - * Construct an instance of FirestoreClient. - * - * @param {object} [options] - The configuration object. - * The options accepted by the constructor are described in detail - * in [this document](https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#creating-the-client-instance). - * The common options are: - * @param {object} [options.credentials] - Credentials object. - * @param {string} [options.credentials.client_email] - * @param {string} [options.credentials.private_key] - * @param {string} [options.email] - Account email address. Required when - * using a .pem or .p12 keyFilename. - * @param {string} [options.keyFilename] - Full path to the a .json, .pem, or - * .p12 key downloaded from the Google Developers Console. If you provide - * a path to a JSON file, the projectId option below is not necessary. - * NOTE: .pem and .p12 require you to specify options.email as well. - * @param {number} [options.port] - The port on which to connect to - * the remote host. - * @param {string} [options.projectId] - The project ID from the Google - * Developer's Console, e.g. 'grape-spaceship-123'. We will also check - * the environment variable GCLOUD_PROJECT for your project ID. If your - * app is running in an environment which supports - * {@link https://cloud.google.com/docs/authentication/application-default-credentials Application Default Credentials}, - * your project ID will be detected automatically. - * @param {string} [options.apiEndpoint] - The domain name of the - * API remote host. - * @param {gax.ClientConfig} [options.clientConfig] - Client configuration override. - * Follows the structure of {@link gapicConfig}. - * @param {boolean} [options.fallback] - Use HTTP/1.1 REST mode. - * For more information, please check the - * {@link https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#http11-rest-api-mode documentation}. - * @param {gax} [gaxInstance]: loaded instance of `google-gax`. Useful if you - * need to avoid loading the default gRPC version and want to use the fallback - * HTTP implementation. Load only fallback version and pass it to the constructor: - * ``` - * const gax = require('google-gax/build/src/fallback'); // avoids loading google-gax with gRPC - * const client = new FirestoreClient({fallback: true}, gax); - * ``` - */ - constructor( - opts?: ClientOptions, - gaxInstance?: typeof gax | typeof gax.fallback, - ) { - // Ensure that options include all the required fields. - const staticMembers = this.constructor as typeof FirestoreClient; - if ( - opts?.universe_domain && - opts?.universeDomain && - opts?.universe_domain !== opts?.universeDomain - ) { - throw new Error( - 'Please set either universe_domain or universeDomain, but not both.', - ); - } - const universeDomainEnvVar = - typeof process === 'object' && typeof process.env === 'object' - ? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] - : undefined; - this._universeDomain = - opts?.universeDomain ?? - opts?.universe_domain ?? - universeDomainEnvVar ?? - 'googleapis.com'; - this._servicePath = 'firestore.' + this._universeDomain; - const servicePath = - opts?.servicePath || opts?.apiEndpoint || this._servicePath; - this._providedCustomServicePath = !!( - opts?.servicePath || opts?.apiEndpoint - ); - const port = opts?.port || staticMembers.port; - const clientConfig = opts?.clientConfig ?? {}; - const fallback = - opts?.fallback ?? - (typeof window !== 'undefined' && typeof window?.fetch === 'function'); - opts = Object.assign({ servicePath, port, clientConfig, fallback }, opts); - - // Request numeric enum values if REST transport is used. - opts.numericEnums = true; - - // If scopes are unset in options and we're connecting to a non-default endpoint, set scopes just in case. - if (servicePath !== this._servicePath && !('scopes' in opts)) { - opts['scopes'] = staticMembers.scopes; - } - - // Load google-gax module synchronously if needed - if (!gaxInstance) { - gaxInstance = require('google-gax') as typeof gax; - } - - // Choose either gRPC or proto-over-HTTP implementation of google-gax. - this._gaxModule = opts.fallback ? gaxInstance.fallback : gaxInstance; - - // Create a `gaxGrpc` object, with any grpc-specific options sent to the client. - this._gaxGrpc = new this._gaxModule.GrpcClient(opts); - - // Save options to use in initialize() method. - this._opts = opts; - - // Save the auth object to the client, for use by other methods. - this.auth = this._gaxGrpc.auth as gax.GoogleAuth; - - // Set useJWTAccessWithScope on the auth object. - this.auth.useJWTAccessWithScope = true; - - // Set defaultServicePath on the auth object. - this.auth.defaultServicePath = this._servicePath; - - // Set the default scopes in auth client if needed. - if (servicePath === this._servicePath) { - this.auth.defaultScopes = staticMembers.scopes; - } - - // Determine the client header string. - const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`]; - if (typeof process === 'object' && 'versions' in process) { - clientHeader.push(`gl-node/${process.versions.node}`); - } else { - clientHeader.push(`gl-web/${this._gaxModule.version}`); - } - if (!opts.fallback) { - clientHeader.push(`grpc/${this._gaxGrpc.grpcVersion}`); - } else { - clientHeader.push(`rest/${this._gaxGrpc.grpcVersion}`); - } - if (opts.libName && opts.libVersion) { - clientHeader.push(`${opts.libName}/${opts.libVersion}`); - } - // Load the applicable protos. - this._protos = this._gaxGrpc.loadProtoJSON(jsonProtos); - - // Some of the methods on this service return "paged" results, - // (e.g. 50 results at a time, with tokens to get subsequent - // pages). Denote the keys used for pagination and results. - this.descriptors.page = { - listDocuments: new this._gaxModule.PageDescriptor( - 'pageToken', - 'nextPageToken', - 'documents', - ), - partitionQuery: new this._gaxModule.PageDescriptor( - 'pageToken', - 'nextPageToken', - 'partitions', - ), - listCollectionIds: new this._gaxModule.PageDescriptor( - 'pageToken', - 'nextPageToken', - 'collectionIds', - ), - }; - - // Some of the methods on this service provide streaming responses. - // Provide descriptors for these. - this.descriptors.stream = { - batchGetDocuments: new this._gaxModule.StreamDescriptor( - this._gaxModule.StreamType.SERVER_STREAMING, - !!opts.fallback, - !!opts.gaxServerStreamingRetries, - ), - runQuery: new this._gaxModule.StreamDescriptor( - this._gaxModule.StreamType.SERVER_STREAMING, - !!opts.fallback, - !!opts.gaxServerStreamingRetries, - ), - write: new this._gaxModule.StreamDescriptor( - this._gaxModule.StreamType.BIDI_STREAMING, - !!opts.fallback, - !!opts.gaxServerStreamingRetries, - ), - listen: new this._gaxModule.StreamDescriptor( - this._gaxModule.StreamType.BIDI_STREAMING, - !!opts.fallback, - !!opts.gaxServerStreamingRetries, - ), - }; - - // Put together the default options sent with requests. - this._defaults = this._gaxGrpc.constructSettings( - 'google.firestore.v1beta1.Firestore', - gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, - { 'x-goog-api-client': clientHeader.join(' ') }, - ); - - // Set up a dictionary of "inner API calls"; the core implementation - // of calling the API is handled in `google-gax`, with this code - // merely providing the destination and request information. - this.innerApiCalls = {}; - - // Add a warn function to the client constructor so it can be easily tested. - this.warn = this._gaxModule.warn; - } - - /** - * Initialize the client. - * Performs asynchronous operations (such as authentication) and prepares the client. - * This function will be called automatically when any class method is called for the - * first time, but if you need to initialize it before calling an actual method, - * feel free to call initialize() directly. - * - * You can await on this method if you want to make sure the client is initialized. - * - * @returns {Promise} A promise that resolves to an authenticated service stub. - */ - initialize() { - // If the client stub promise is already initialized, return immediately. - if (this.firestoreStub) { - return this.firestoreStub; - } - - // Put together the "service stub" for - // google.firestore.v1beta1.Firestore. - this.firestoreStub = this._gaxGrpc.createStub( - this._opts.fallback - ? (this._protos as protobuf.Root).lookupService( - 'google.firestore.v1beta1.Firestore', - ) - : // eslint-disable-next-line @typescript-eslint/no-explicit-any - (this._protos as any).google.firestore.v1beta1.Firestore, - this._opts, - this._providedCustomServicePath, - ) as Promise<{ [method: string]: Function }>; - - // Iterate over each of the methods that the service provides - // and create an API call method for each. - const firestoreStubMethods = [ - 'getDocument', - 'listDocuments', - 'updateDocument', - 'deleteDocument', - 'batchGetDocuments', - 'beginTransaction', - 'commit', - 'rollback', - 'runQuery', - 'partitionQuery', - 'write', - 'listen', - 'listCollectionIds', - 'batchWrite', - 'createDocument', - ]; - for (const methodName of firestoreStubMethods) { - const callPromise = this.firestoreStub.then( - (stub) => - (...args: Array<{}>) => { - if (this._terminated) { - if (methodName in this.descriptors.stream) { - const stream = new PassThrough({ objectMode: true }); - setImmediate(() => { - stream.emit( - 'error', - new this._gaxModule.GoogleError( - 'The client has already been closed.', - ), - ); - }); - return stream; - } - return Promise.reject('The client has already been closed.'); - } - const func = stub[methodName]; - return func.apply(stub, args); - }, - (err: Error | null | undefined) => () => { - throw err; - }, - ); - - const descriptor = - this.descriptors.page[methodName] || - this.descriptors.stream[methodName] || - undefined; - const apiCall = this._gaxModule.createApiCall( - callPromise, - this._defaults[methodName], - descriptor, - this._opts.fallback, - ); - - this.innerApiCalls[methodName] = apiCall; - } - - return this.firestoreStub; - } - - /** - * The DNS address for this API service. - * @deprecated Use the apiEndpoint method of the client instance. - * @returns {string} The DNS address for this service. - */ - static get servicePath() { - if ( - typeof process === 'object' && - typeof process.emitWarning === 'function' - ) { - process.emitWarning( - 'Static servicePath is deprecated, please use the instance method instead.', - 'DeprecationWarning', - ); - } - return 'firestore.googleapis.com'; - } - - /** - * The DNS address for this API service - same as servicePath. - * @deprecated Use the apiEndpoint method of the client instance. - * @returns {string} The DNS address for this service. - */ - static get apiEndpoint() { - if ( - typeof process === 'object' && - typeof process.emitWarning === 'function' - ) { - process.emitWarning( - 'Static apiEndpoint is deprecated, please use the instance method instead.', - 'DeprecationWarning', - ); - } - return 'firestore.googleapis.com'; - } - - /** - * The DNS address for this API service. - * @returns {string} The DNS address for this service. - */ - get apiEndpoint() { - return this._servicePath; - } - - get universeDomain() { - return this._universeDomain; - } - - /** - * The port for this API service. - * @returns {number} The default port for this service. - */ - static get port() { - return 443; - } - - /** - * The scopes needed to make gRPC calls for every method defined - * in this service. - * @returns {string[]} List of default scopes. - */ - static get scopes() { - return [ - 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/datastore', - ]; - } - - getProjectId(): Promise; - getProjectId(callback: Callback): void; - /** - * Return the project ID used by this class. - * @returns {Promise} A promise that resolves to string containing the project ID. - */ - getProjectId( - callback?: Callback, - ): Promise | void { - if (callback) { - this.auth.getProjectId(callback); - return; - } - return this.auth.getProjectId(); - } - - // ------------------- - // -- Service calls -- - // ------------------- - /** - * Gets a single document. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The resource name of the Document to get. In the format: - * `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - * @param {google.firestore.v1beta1.DocumentMask} request.mask - * The fields to return. If not set, returns all fields. - * - * If the document has a field that is not present in this mask, that field - * will not be returned in the response. - * @param {Buffer} request.transaction - * Reads the document in a transaction. - * @param {google.protobuf.Timestamp} request.readTime - * Reads the version of the document at the given time. - * This may not be older than 270 seconds. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.firestore.v1beta1.Document|Document}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta1/firestore.get_document.js - * region_tag:firestore_v1beta1_generated_Firestore_GetDocument_async - */ - getDocument( - request?: protos.google.firestore.v1beta1.IGetDocumentRequest, - options?: CallOptions, - ): Promise< - [ - protos.google.firestore.v1beta1.IDocument, - protos.google.firestore.v1beta1.IGetDocumentRequest | undefined, - {} | undefined, - ] - >; - getDocument( - request: protos.google.firestore.v1beta1.IGetDocumentRequest, - options: CallOptions, - callback: Callback< - protos.google.firestore.v1beta1.IDocument, - protos.google.firestore.v1beta1.IGetDocumentRequest | null | undefined, - {} | null | undefined - >, - ): void; - getDocument( - request: protos.google.firestore.v1beta1.IGetDocumentRequest, - callback: Callback< - protos.google.firestore.v1beta1.IDocument, - protos.google.firestore.v1beta1.IGetDocumentRequest | null | undefined, - {} | null | undefined - >, - ): void; - getDocument( - request?: protos.google.firestore.v1beta1.IGetDocumentRequest, - optionsOrCallback?: - | CallOptions - | Callback< - protos.google.firestore.v1beta1.IDocument, - | protos.google.firestore.v1beta1.IGetDocumentRequest - | null - | undefined, - {} | null | undefined - >, - callback?: Callback< - protos.google.firestore.v1beta1.IDocument, - protos.google.firestore.v1beta1.IGetDocumentRequest | null | undefined, - {} | null | undefined - >, - ): Promise< - [ - protos.google.firestore.v1beta1.IDocument, - protos.google.firestore.v1beta1.IGetDocumentRequest | undefined, - {} | undefined, - ] - > | void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers['x-goog-request-params'] = - this._gaxModule.routingHeader.fromParams({ - name: request.name ?? '', - }); - this.initialize().catch((err) => { - throw err; - }); - this._log.info('getDocument request %j', request); - const wrappedCallback: - | Callback< - protos.google.firestore.v1beta1.IDocument, - | protos.google.firestore.v1beta1.IGetDocumentRequest - | null - | undefined, - {} | null | undefined - > - | undefined = callback - ? (error, response, options, rawResponse) => { - this._log.info('getDocument response %j', response); - callback!(error, response, options, rawResponse); // We verified callback above. - } - : undefined; - return this.innerApiCalls - .getDocument(request, options, wrappedCallback) - ?.then( - ([response, options, rawResponse]: [ - protos.google.firestore.v1beta1.IDocument, - protos.google.firestore.v1beta1.IGetDocumentRequest | undefined, - {} | undefined, - ]) => { - this._log.info('getDocument response %j', response); - return [response, options, rawResponse]; - }, - ) - .catch((error: any) => { - if ( - error && - 'statusDetails' in error && - error.statusDetails instanceof Array - ) { - const protos = this._gaxModule.protobuf.Root.fromJSON( - jsonProtos, - ) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray( - error.statusDetails, - protos, - ); - } - throw error; - }); - } - /** - * Updates or inserts a document. - * - * @param {Object} request - * The request object that will be sent. - * @param {google.firestore.v1beta1.Document} request.document - * Required. The updated document. - * Creates the document if it does not already exist. - * @param {google.firestore.v1beta1.DocumentMask} request.updateMask - * The fields to update. - * None of the field paths in the mask may contain a reserved name. - * - * If the document exists on the server and has fields not referenced in the - * mask, they are left unchanged. - * Fields referenced in the mask, but not present in the input document, are - * deleted from the document on the server. - * @param {google.firestore.v1beta1.DocumentMask} request.mask - * The fields to return. If not set, returns all fields. - * - * If the document has a field that is not present in this mask, that field - * will not be returned in the response. - * @param {google.firestore.v1beta1.Precondition} request.currentDocument - * An optional precondition on the document. - * The request will fail if this is set and not met by the target document. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.firestore.v1beta1.Document|Document}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta1/firestore.update_document.js - * region_tag:firestore_v1beta1_generated_Firestore_UpdateDocument_async - */ - updateDocument( - request?: protos.google.firestore.v1beta1.IUpdateDocumentRequest, - options?: CallOptions, - ): Promise< - [ - protos.google.firestore.v1beta1.IDocument, - protos.google.firestore.v1beta1.IUpdateDocumentRequest | undefined, - {} | undefined, - ] - >; - updateDocument( - request: protos.google.firestore.v1beta1.IUpdateDocumentRequest, - options: CallOptions, - callback: Callback< - protos.google.firestore.v1beta1.IDocument, - protos.google.firestore.v1beta1.IUpdateDocumentRequest | null | undefined, - {} | null | undefined - >, - ): void; - updateDocument( - request: protos.google.firestore.v1beta1.IUpdateDocumentRequest, - callback: Callback< - protos.google.firestore.v1beta1.IDocument, - protos.google.firestore.v1beta1.IUpdateDocumentRequest | null | undefined, - {} | null | undefined - >, - ): void; - updateDocument( - request?: protos.google.firestore.v1beta1.IUpdateDocumentRequest, - optionsOrCallback?: - | CallOptions - | Callback< - protos.google.firestore.v1beta1.IDocument, - | protos.google.firestore.v1beta1.IUpdateDocumentRequest - | null - | undefined, - {} | null | undefined - >, - callback?: Callback< - protos.google.firestore.v1beta1.IDocument, - protos.google.firestore.v1beta1.IUpdateDocumentRequest | null | undefined, - {} | null | undefined - >, - ): Promise< - [ - protos.google.firestore.v1beta1.IDocument, - protos.google.firestore.v1beta1.IUpdateDocumentRequest | undefined, - {} | undefined, - ] - > | void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers['x-goog-request-params'] = - this._gaxModule.routingHeader.fromParams({ - 'document.name': request.document!.name ?? '', - }); - this.initialize().catch((err) => { - throw err; - }); - this._log.info('updateDocument request %j', request); - const wrappedCallback: - | Callback< - protos.google.firestore.v1beta1.IDocument, - | protos.google.firestore.v1beta1.IUpdateDocumentRequest - | null - | undefined, - {} | null | undefined - > - | undefined = callback - ? (error, response, options, rawResponse) => { - this._log.info('updateDocument response %j', response); - callback!(error, response, options, rawResponse); // We verified callback above. - } - : undefined; - return this.innerApiCalls - .updateDocument(request, options, wrappedCallback) - ?.then( - ([response, options, rawResponse]: [ - protos.google.firestore.v1beta1.IDocument, - protos.google.firestore.v1beta1.IUpdateDocumentRequest | undefined, - {} | undefined, - ]) => { - this._log.info('updateDocument response %j', response); - return [response, options, rawResponse]; - }, - ) - .catch((error: any) => { - if ( - error && - 'statusDetails' in error && - error.statusDetails instanceof Array - ) { - const protos = this._gaxModule.protobuf.Root.fromJSON( - jsonProtos, - ) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray( - error.statusDetails, - protos, - ); - } - throw error; - }); - } - /** - * Deletes a document. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The resource name of the Document to delete. In the format: - * `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - * @param {google.firestore.v1beta1.Precondition} request.currentDocument - * An optional precondition on the document. - * The request will fail if this is set and not met by the target document. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.protobuf.Empty|Empty}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta1/firestore.delete_document.js - * region_tag:firestore_v1beta1_generated_Firestore_DeleteDocument_async - */ - deleteDocument( - request?: protos.google.firestore.v1beta1.IDeleteDocumentRequest, - options?: CallOptions, - ): Promise< - [ - protos.google.protobuf.IEmpty, - protos.google.firestore.v1beta1.IDeleteDocumentRequest | undefined, - {} | undefined, - ] - >; - deleteDocument( - request: protos.google.firestore.v1beta1.IDeleteDocumentRequest, - options: CallOptions, - callback: Callback< - protos.google.protobuf.IEmpty, - protos.google.firestore.v1beta1.IDeleteDocumentRequest | null | undefined, - {} | null | undefined - >, - ): void; - deleteDocument( - request: protos.google.firestore.v1beta1.IDeleteDocumentRequest, - callback: Callback< - protos.google.protobuf.IEmpty, - protos.google.firestore.v1beta1.IDeleteDocumentRequest | null | undefined, - {} | null | undefined - >, - ): void; - deleteDocument( - request?: protos.google.firestore.v1beta1.IDeleteDocumentRequest, - optionsOrCallback?: - | CallOptions - | Callback< - protos.google.protobuf.IEmpty, - | protos.google.firestore.v1beta1.IDeleteDocumentRequest - | null - | undefined, - {} | null | undefined - >, - callback?: Callback< - protos.google.protobuf.IEmpty, - protos.google.firestore.v1beta1.IDeleteDocumentRequest | null | undefined, - {} | null | undefined - >, - ): Promise< - [ - protos.google.protobuf.IEmpty, - protos.google.firestore.v1beta1.IDeleteDocumentRequest | undefined, - {} | undefined, - ] - > | void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers['x-goog-request-params'] = - this._gaxModule.routingHeader.fromParams({ - name: request.name ?? '', - }); - this.initialize().catch((err) => { - throw err; - }); - this._log.info('deleteDocument request %j', request); - const wrappedCallback: - | Callback< - protos.google.protobuf.IEmpty, - | protos.google.firestore.v1beta1.IDeleteDocumentRequest - | null - | undefined, - {} | null | undefined - > - | undefined = callback - ? (error, response, options, rawResponse) => { - this._log.info('deleteDocument response %j', response); - callback!(error, response, options, rawResponse); // We verified callback above. - } - : undefined; - return this.innerApiCalls - .deleteDocument(request, options, wrappedCallback) - ?.then( - ([response, options, rawResponse]: [ - protos.google.protobuf.IEmpty, - protos.google.firestore.v1beta1.IDeleteDocumentRequest | undefined, - {} | undefined, - ]) => { - this._log.info('deleteDocument response %j', response); - return [response, options, rawResponse]; - }, - ) - .catch((error: any) => { - if ( - error && - 'statusDetails' in error && - error.statusDetails instanceof Array - ) { - const protos = this._gaxModule.protobuf.Root.fromJSON( - jsonProtos, - ) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray( - error.statusDetails, - protos, - ); - } - throw error; - }); - } - /** - * Starts a new transaction. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.database - * Required. The database name. In the format: - * `projects/{project_id}/databases/{database_id}`. - * @param {google.firestore.v1beta1.TransactionOptions} request.options - * The options for the transaction. - * Defaults to a read-write transaction. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.firestore.v1beta1.BeginTransactionResponse|BeginTransactionResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta1/firestore.begin_transaction.js - * region_tag:firestore_v1beta1_generated_Firestore_BeginTransaction_async - */ - beginTransaction( - request?: protos.google.firestore.v1beta1.IBeginTransactionRequest, - options?: CallOptions, - ): Promise< - [ - protos.google.firestore.v1beta1.IBeginTransactionResponse, - protos.google.firestore.v1beta1.IBeginTransactionRequest | undefined, - {} | undefined, - ] - >; - beginTransaction( - request: protos.google.firestore.v1beta1.IBeginTransactionRequest, - options: CallOptions, - callback: Callback< - protos.google.firestore.v1beta1.IBeginTransactionResponse, - | protos.google.firestore.v1beta1.IBeginTransactionRequest - | null - | undefined, - {} | null | undefined - >, - ): void; - beginTransaction( - request: protos.google.firestore.v1beta1.IBeginTransactionRequest, - callback: Callback< - protos.google.firestore.v1beta1.IBeginTransactionResponse, - | protos.google.firestore.v1beta1.IBeginTransactionRequest - | null - | undefined, - {} | null | undefined - >, - ): void; - beginTransaction( - request?: protos.google.firestore.v1beta1.IBeginTransactionRequest, - optionsOrCallback?: - | CallOptions - | Callback< - protos.google.firestore.v1beta1.IBeginTransactionResponse, - | protos.google.firestore.v1beta1.IBeginTransactionRequest - | null - | undefined, - {} | null | undefined - >, - callback?: Callback< - protos.google.firestore.v1beta1.IBeginTransactionResponse, - | protos.google.firestore.v1beta1.IBeginTransactionRequest - | null - | undefined, - {} | null | undefined - >, - ): Promise< - [ - protos.google.firestore.v1beta1.IBeginTransactionResponse, - protos.google.firestore.v1beta1.IBeginTransactionRequest | undefined, - {} | undefined, - ] - > | void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers['x-goog-request-params'] = - this._gaxModule.routingHeader.fromParams({ - database: request.database ?? '', - }); - this.initialize().catch((err) => { - throw err; - }); - this._log.info('beginTransaction request %j', request); - const wrappedCallback: - | Callback< - protos.google.firestore.v1beta1.IBeginTransactionResponse, - | protos.google.firestore.v1beta1.IBeginTransactionRequest - | null - | undefined, - {} | null | undefined - > - | undefined = callback - ? (error, response, options, rawResponse) => { - this._log.info('beginTransaction response %j', response); - callback!(error, response, options, rawResponse); // We verified callback above. - } - : undefined; - return this.innerApiCalls - .beginTransaction(request, options, wrappedCallback) - ?.then( - ([response, options, rawResponse]: [ - protos.google.firestore.v1beta1.IBeginTransactionResponse, - protos.google.firestore.v1beta1.IBeginTransactionRequest | undefined, - {} | undefined, - ]) => { - this._log.info('beginTransaction response %j', response); - return [response, options, rawResponse]; - }, - ) - .catch((error: any) => { - if ( - error && - 'statusDetails' in error && - error.statusDetails instanceof Array - ) { - const protos = this._gaxModule.protobuf.Root.fromJSON( - jsonProtos, - ) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray( - error.statusDetails, - protos, - ); - } - throw error; - }); - } - /** - * Commits a transaction, while optionally updating documents. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.database - * Required. The database name. In the format: - * `projects/{project_id}/databases/{database_id}`. - * @param {number[]} request.writes - * The writes to apply. - * - * Always executed atomically and in order. - * @param {Buffer} request.transaction - * If set, applies all writes in this transaction, and commits it. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.firestore.v1beta1.CommitResponse|CommitResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta1/firestore.commit.js - * region_tag:firestore_v1beta1_generated_Firestore_Commit_async - */ - commit( - request?: protos.google.firestore.v1beta1.ICommitRequest, - options?: CallOptions, - ): Promise< - [ - protos.google.firestore.v1beta1.ICommitResponse, - protos.google.firestore.v1beta1.ICommitRequest | undefined, - {} | undefined, - ] - >; - commit( - request: protos.google.firestore.v1beta1.ICommitRequest, - options: CallOptions, - callback: Callback< - protos.google.firestore.v1beta1.ICommitResponse, - protos.google.firestore.v1beta1.ICommitRequest | null | undefined, - {} | null | undefined - >, - ): void; - commit( - request: protos.google.firestore.v1beta1.ICommitRequest, - callback: Callback< - protos.google.firestore.v1beta1.ICommitResponse, - protos.google.firestore.v1beta1.ICommitRequest | null | undefined, - {} | null | undefined - >, - ): void; - commit( - request?: protos.google.firestore.v1beta1.ICommitRequest, - optionsOrCallback?: - | CallOptions - | Callback< - protos.google.firestore.v1beta1.ICommitResponse, - protos.google.firestore.v1beta1.ICommitRequest | null | undefined, - {} | null | undefined - >, - callback?: Callback< - protos.google.firestore.v1beta1.ICommitResponse, - protos.google.firestore.v1beta1.ICommitRequest | null | undefined, - {} | null | undefined - >, - ): Promise< - [ - protos.google.firestore.v1beta1.ICommitResponse, - protos.google.firestore.v1beta1.ICommitRequest | undefined, - {} | undefined, - ] - > | void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers['x-goog-request-params'] = - this._gaxModule.routingHeader.fromParams({ - database: request.database ?? '', - }); - this.initialize().catch((err) => { - throw err; - }); - this._log.info('commit request %j', request); - const wrappedCallback: - | Callback< - protos.google.firestore.v1beta1.ICommitResponse, - protos.google.firestore.v1beta1.ICommitRequest | null | undefined, - {} | null | undefined - > - | undefined = callback - ? (error, response, options, rawResponse) => { - this._log.info('commit response %j', response); - callback!(error, response, options, rawResponse); // We verified callback above. - } - : undefined; - return this.innerApiCalls - .commit(request, options, wrappedCallback) - ?.then( - ([response, options, rawResponse]: [ - protos.google.firestore.v1beta1.ICommitResponse, - protos.google.firestore.v1beta1.ICommitRequest | undefined, - {} | undefined, - ]) => { - this._log.info('commit response %j', response); - return [response, options, rawResponse]; - }, - ) - .catch((error: any) => { - if ( - error && - 'statusDetails' in error && - error.statusDetails instanceof Array - ) { - const protos = this._gaxModule.protobuf.Root.fromJSON( - jsonProtos, - ) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray( - error.statusDetails, - protos, - ); - } - throw error; - }); - } - /** - * Rolls back a transaction. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.database - * Required. The database name. In the format: - * `projects/{project_id}/databases/{database_id}`. - * @param {Buffer} request.transaction - * Required. The transaction to roll back. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.protobuf.Empty|Empty}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta1/firestore.rollback.js - * region_tag:firestore_v1beta1_generated_Firestore_Rollback_async - */ - rollback( - request?: protos.google.firestore.v1beta1.IRollbackRequest, - options?: CallOptions, - ): Promise< - [ - protos.google.protobuf.IEmpty, - protos.google.firestore.v1beta1.IRollbackRequest | undefined, - {} | undefined, - ] - >; - rollback( - request: protos.google.firestore.v1beta1.IRollbackRequest, - options: CallOptions, - callback: Callback< - protos.google.protobuf.IEmpty, - protos.google.firestore.v1beta1.IRollbackRequest | null | undefined, - {} | null | undefined - >, - ): void; - rollback( - request: protos.google.firestore.v1beta1.IRollbackRequest, - callback: Callback< - protos.google.protobuf.IEmpty, - protos.google.firestore.v1beta1.IRollbackRequest | null | undefined, - {} | null | undefined - >, - ): void; - rollback( - request?: protos.google.firestore.v1beta1.IRollbackRequest, - optionsOrCallback?: - | CallOptions - | Callback< - protos.google.protobuf.IEmpty, - protos.google.firestore.v1beta1.IRollbackRequest | null | undefined, - {} | null | undefined - >, - callback?: Callback< - protos.google.protobuf.IEmpty, - protos.google.firestore.v1beta1.IRollbackRequest | null | undefined, - {} | null | undefined - >, - ): Promise< - [ - protos.google.protobuf.IEmpty, - protos.google.firestore.v1beta1.IRollbackRequest | undefined, - {} | undefined, - ] - > | void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers['x-goog-request-params'] = - this._gaxModule.routingHeader.fromParams({ - database: request.database ?? '', - }); - this.initialize().catch((err) => { - throw err; - }); - this._log.info('rollback request %j', request); - const wrappedCallback: - | Callback< - protos.google.protobuf.IEmpty, - protos.google.firestore.v1beta1.IRollbackRequest | null | undefined, - {} | null | undefined - > - | undefined = callback - ? (error, response, options, rawResponse) => { - this._log.info('rollback response %j', response); - callback!(error, response, options, rawResponse); // We verified callback above. - } - : undefined; - return this.innerApiCalls - .rollback(request, options, wrappedCallback) - ?.then( - ([response, options, rawResponse]: [ - protos.google.protobuf.IEmpty, - protos.google.firestore.v1beta1.IRollbackRequest | undefined, - {} | undefined, - ]) => { - this._log.info('rollback response %j', response); - return [response, options, rawResponse]; - }, - ) - .catch((error: any) => { - if ( - error && - 'statusDetails' in error && - error.statusDetails instanceof Array - ) { - const protos = this._gaxModule.protobuf.Root.fromJSON( - jsonProtos, - ) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray( - error.statusDetails, - protos, - ); - } - throw error; - }); - } - /** - * Applies a batch of write operations. - * - * The BatchWrite method does not apply the write operations atomically - * and can apply them out of order. Method does not allow more than one write - * per document. Each write succeeds or fails independently. See the - * {@link protos.google.firestore.v1beta1.BatchWriteResponse|BatchWriteResponse} for the success status of each write. - * - * If you require an atomically applied set of writes, use - * {@link protos.google.firestore.v1beta1.Firestore.Commit|Commit} instead. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.database - * Required. The database name. In the format: - * `projects/{project_id}/databases/{database_id}`. - * @param {number[]} request.writes - * The writes to apply. - * - * Method does not apply writes atomically and does not guarantee ordering. - * Each write succeeds or fails independently. You cannot write to the same - * document more than once per request. - * @param {number[]} request.labels - * Labels associated with this batch write. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.firestore.v1beta1.BatchWriteResponse|BatchWriteResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta1/firestore.batch_write.js - * region_tag:firestore_v1beta1_generated_Firestore_BatchWrite_async - */ - batchWrite( - request?: protos.google.firestore.v1beta1.IBatchWriteRequest, - options?: CallOptions, - ): Promise< - [ - protos.google.firestore.v1beta1.IBatchWriteResponse, - protos.google.firestore.v1beta1.IBatchWriteRequest | undefined, - {} | undefined, - ] - >; - batchWrite( - request: protos.google.firestore.v1beta1.IBatchWriteRequest, - options: CallOptions, - callback: Callback< - protos.google.firestore.v1beta1.IBatchWriteResponse, - protos.google.firestore.v1beta1.IBatchWriteRequest | null | undefined, - {} | null | undefined - >, - ): void; - batchWrite( - request: protos.google.firestore.v1beta1.IBatchWriteRequest, - callback: Callback< - protos.google.firestore.v1beta1.IBatchWriteResponse, - protos.google.firestore.v1beta1.IBatchWriteRequest | null | undefined, - {} | null | undefined - >, - ): void; - batchWrite( - request?: protos.google.firestore.v1beta1.IBatchWriteRequest, - optionsOrCallback?: - | CallOptions - | Callback< - protos.google.firestore.v1beta1.IBatchWriteResponse, - protos.google.firestore.v1beta1.IBatchWriteRequest | null | undefined, - {} | null | undefined - >, - callback?: Callback< - protos.google.firestore.v1beta1.IBatchWriteResponse, - protos.google.firestore.v1beta1.IBatchWriteRequest | null | undefined, - {} | null | undefined - >, - ): Promise< - [ - protos.google.firestore.v1beta1.IBatchWriteResponse, - protos.google.firestore.v1beta1.IBatchWriteRequest | undefined, - {} | undefined, - ] - > | void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers['x-goog-request-params'] = - this._gaxModule.routingHeader.fromParams({ - database: request.database ?? '', - }); - this.initialize().catch((err) => { - throw err; - }); - this._log.info('batchWrite request %j', request); - const wrappedCallback: - | Callback< - protos.google.firestore.v1beta1.IBatchWriteResponse, - protos.google.firestore.v1beta1.IBatchWriteRequest | null | undefined, - {} | null | undefined - > - | undefined = callback - ? (error, response, options, rawResponse) => { - this._log.info('batchWrite response %j', response); - callback!(error, response, options, rawResponse); // We verified callback above. - } - : undefined; - return this.innerApiCalls - .batchWrite(request, options, wrappedCallback) - ?.then( - ([response, options, rawResponse]: [ - protos.google.firestore.v1beta1.IBatchWriteResponse, - protos.google.firestore.v1beta1.IBatchWriteRequest | undefined, - {} | undefined, - ]) => { - this._log.info('batchWrite response %j', response); - return [response, options, rawResponse]; - }, - ) - .catch((error: any) => { - if ( - error && - 'statusDetails' in error && - error.statusDetails instanceof Array - ) { - const protos = this._gaxModule.protobuf.Root.fromJSON( - jsonProtos, - ) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray( - error.statusDetails, - protos, - ); - } - throw error; - }); - } - /** - * Creates a new document. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent resource. For example: - * `projects/{project_id}/databases/{database_id}/documents` or - * `projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}` - * @param {string} request.collectionId - * Required. The collection ID, relative to `parent`, to list. For example: `chatrooms`. - * @param {string} request.documentId - * The client-assigned document ID to use for this document. - * - * Optional. If not specified, an ID will be assigned by the service. - * @param {google.firestore.v1beta1.Document} request.document - * Required. The document to create. `name` must not be set. - * @param {google.firestore.v1beta1.DocumentMask} request.mask - * The fields to return. If not set, returns all fields. - * - * If the document has a field that is not present in this mask, that field - * will not be returned in the response. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.firestore.v1beta1.Document|Document}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta1/firestore.create_document.js - * region_tag:firestore_v1beta1_generated_Firestore_CreateDocument_async - */ - createDocument( - request?: protos.google.firestore.v1beta1.ICreateDocumentRequest, - options?: CallOptions, - ): Promise< - [ - protos.google.firestore.v1beta1.IDocument, - protos.google.firestore.v1beta1.ICreateDocumentRequest | undefined, - {} | undefined, - ] - >; - createDocument( - request: protos.google.firestore.v1beta1.ICreateDocumentRequest, - options: CallOptions, - callback: Callback< - protos.google.firestore.v1beta1.IDocument, - protos.google.firestore.v1beta1.ICreateDocumentRequest | null | undefined, - {} | null | undefined - >, - ): void; - createDocument( - request: protos.google.firestore.v1beta1.ICreateDocumentRequest, - callback: Callback< - protos.google.firestore.v1beta1.IDocument, - protos.google.firestore.v1beta1.ICreateDocumentRequest | null | undefined, - {} | null | undefined - >, - ): void; - createDocument( - request?: protos.google.firestore.v1beta1.ICreateDocumentRequest, - optionsOrCallback?: - | CallOptions - | Callback< - protos.google.firestore.v1beta1.IDocument, - | protos.google.firestore.v1beta1.ICreateDocumentRequest - | null - | undefined, - {} | null | undefined - >, - callback?: Callback< - protos.google.firestore.v1beta1.IDocument, - protos.google.firestore.v1beta1.ICreateDocumentRequest | null | undefined, - {} | null | undefined - >, - ): Promise< - [ - protos.google.firestore.v1beta1.IDocument, - protos.google.firestore.v1beta1.ICreateDocumentRequest | undefined, - {} | undefined, - ] - > | void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers['x-goog-request-params'] = - this._gaxModule.routingHeader.fromParams({ - parent: request.parent ?? '', - collection_id: request.collectionId?.toString() ?? '', - }); - this.initialize().catch((err) => { - throw err; - }); - this._log.info('createDocument request %j', request); - const wrappedCallback: - | Callback< - protos.google.firestore.v1beta1.IDocument, - | protos.google.firestore.v1beta1.ICreateDocumentRequest - | null - | undefined, - {} | null | undefined - > - | undefined = callback - ? (error, response, options, rawResponse) => { - this._log.info('createDocument response %j', response); - callback!(error, response, options, rawResponse); // We verified callback above. - } - : undefined; - return this.innerApiCalls - .createDocument(request, options, wrappedCallback) - ?.then( - ([response, options, rawResponse]: [ - protos.google.firestore.v1beta1.IDocument, - protos.google.firestore.v1beta1.ICreateDocumentRequest | undefined, - {} | undefined, - ]) => { - this._log.info('createDocument response %j', response); - return [response, options, rawResponse]; - }, - ) - .catch((error: any) => { - if ( - error && - 'statusDetails' in error && - error.statusDetails instanceof Array - ) { - const protos = this._gaxModule.protobuf.Root.fromJSON( - jsonProtos, - ) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray( - error.statusDetails, - protos, - ); - } - throw error; - }); - } - - /** - * Gets multiple documents. - * - * Documents returned by this method are not guaranteed to be returned in the - * same order that they were requested. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.database - * Required. The database name. In the format: - * `projects/{project_id}/databases/{database_id}`. - * @param {string[]} request.documents - * The names of the documents to retrieve. In the format: - * `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - * The request will fail if any of the document is not a child resource of the - * given `database`. Duplicate names will be elided. - * @param {google.firestore.v1beta1.DocumentMask} request.mask - * The fields to return. If not set, returns all fields. - * - * If a document has a field that is not present in this mask, that field will - * not be returned in the response. - * @param {Buffer} request.transaction - * Reads documents in a transaction. - * @param {google.firestore.v1beta1.TransactionOptions} request.newTransaction - * Starts a new transaction and reads the documents. - * Defaults to a read-only transaction. - * The new transaction ID will be returned as the first response in the - * stream. - * @param {google.protobuf.Timestamp} request.readTime - * Reads documents as they were at the given time. - * This may not be older than 270 seconds. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Stream} - * An object stream which emits {@link protos.google.firestore.v1beta1.BatchGetDocumentsResponse|BatchGetDocumentsResponse} on 'data' event. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#server-streaming | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta1/firestore.batch_get_documents.js - * region_tag:firestore_v1beta1_generated_Firestore_BatchGetDocuments_async - */ - batchGetDocuments( - request?: protos.google.firestore.v1beta1.IBatchGetDocumentsRequest, - options?: CallOptions, - ): gax.CancellableStream { - request = request || {}; - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers['x-goog-request-params'] = - this._gaxModule.routingHeader.fromParams({ - database: request.database ?? '', - }); - this.initialize().catch((err) => { - throw err; - }); - this._log.info('batchGetDocuments stream %j', options); - return this.innerApiCalls.batchGetDocuments(request, options); - } - - /** - * Runs a query. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent resource name. In the format: - * `projects/{project_id}/databases/{database_id}/documents` or - * `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - * For example: - * `projects/my-project/databases/my-database/documents` or - * `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom` - * @param {google.firestore.v1beta1.StructuredQuery} request.structuredQuery - * A structured query. - * @param {Buffer} request.transaction - * Reads documents in a transaction. - * @param {google.firestore.v1beta1.TransactionOptions} request.newTransaction - * Starts a new transaction and reads the documents. - * Defaults to a read-only transaction. - * The new transaction ID will be returned as the first response in the - * stream. - * @param {google.protobuf.Timestamp} request.readTime - * Reads documents as they were at the given time. - * This may not be older than 270 seconds. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Stream} - * An object stream which emits {@link protos.google.firestore.v1beta1.RunQueryResponse|RunQueryResponse} on 'data' event. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#server-streaming | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta1/firestore.run_query.js - * region_tag:firestore_v1beta1_generated_Firestore_RunQuery_async - */ - runQuery( - request?: protos.google.firestore.v1beta1.IRunQueryRequest, - options?: CallOptions, - ): gax.CancellableStream { - request = request || {}; - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers['x-goog-request-params'] = - this._gaxModule.routingHeader.fromParams({ - parent: request.parent ?? '', - }); - this.initialize().catch((err) => { - throw err; - }); - this._log.info('runQuery stream %j', options); - return this.innerApiCalls.runQuery(request, options); - } - - /** - * Streams batches of document updates and deletes, in order. - * - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Stream} - * An object stream which is both readable and writable. It accepts objects - * representing {@link protos.google.firestore.v1beta1.WriteRequest|WriteRequest} for write() method, and - * will emit objects representing {@link protos.google.firestore.v1beta1.WriteResponse|WriteResponse} on 'data' event asynchronously. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#bi-directional-streaming | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta1/firestore.write.js - * region_tag:firestore_v1beta1_generated_Firestore_Write_async - */ - write(options?: CallOptions): gax.CancellableStream { - this.initialize().catch((err) => { - throw err; - }); - this._log.info('write stream %j', options); - return this.innerApiCalls.write(null, options); - } - - /** - * Listens to changes. - * - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Stream} - * An object stream which is both readable and writable. It accepts objects - * representing {@link protos.google.firestore.v1beta1.ListenRequest|ListenRequest} for write() method, and - * will emit objects representing {@link protos.google.firestore.v1beta1.ListenResponse|ListenResponse} on 'data' event asynchronously. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#bi-directional-streaming | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta1/firestore.listen.js - * region_tag:firestore_v1beta1_generated_Firestore_Listen_async - */ - listen(options?: CallOptions): gax.CancellableStream { - this.initialize().catch((err) => { - throw err; - }); - this._log.info('listen stream %j', options); - return this.innerApiCalls.listen(null, options); - } - - /** - * Lists documents. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent resource name. In the format: - * `projects/{project_id}/databases/{database_id}/documents` or - * `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - * For example: - * `projects/my-project/databases/my-database/documents` or - * `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom` - * @param {string} request.collectionId - * Required. The collection ID, relative to `parent`, to list. For example: `chatrooms` - * or `messages`. - * @param {number} request.pageSize - * The maximum number of documents to return. - * @param {string} request.pageToken - * The `next_page_token` value returned from a previous List request, if any. - * @param {string} request.orderBy - * The order to sort results by. For example: `priority desc, name`. - * @param {google.firestore.v1beta1.DocumentMask} request.mask - * The fields to return. If not set, returns all fields. - * - * If a document has a field that is not present in this mask, that field - * will not be returned in the response. - * @param {Buffer} request.transaction - * Reads documents in a transaction. - * @param {google.protobuf.Timestamp} request.readTime - * Reads documents as they were at the given time. - * This may not be older than 270 seconds. - * @param {boolean} request.showMissing - * If the list should show missing documents. A missing document is a - * document that does not exist but has sub-documents. These documents will - * be returned with a key but will not have fields, {@link protos.google.firestore.v1beta1.Document.create_time|Document.create_time}, - * or {@link protos.google.firestore.v1beta1.Document.update_time|Document.update_time} set. - * - * Requests with `show_missing` may not specify `where` or - * `order_by`. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is Array of {@link protos.google.firestore.v1beta1.Document|Document}. - * The client library will perform auto-pagination by default: it will call the API as many - * times as needed and will merge results from all the pages into this array. - * Note that it can affect your quota. - * We recommend using `listDocumentsAsync()` - * method described below for async iteration which you can stop as needed. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } - * for more details and examples. - */ - listDocuments( - request?: protos.google.firestore.v1beta1.IListDocumentsRequest, - options?: CallOptions, - ): Promise< - [ - protos.google.firestore.v1beta1.IDocument[], - protos.google.firestore.v1beta1.IListDocumentsRequest | null, - protos.google.firestore.v1beta1.IListDocumentsResponse, - ] - >; - listDocuments( - request: protos.google.firestore.v1beta1.IListDocumentsRequest, - options: CallOptions, - callback: PaginationCallback< - protos.google.firestore.v1beta1.IListDocumentsRequest, - protos.google.firestore.v1beta1.IListDocumentsResponse | null | undefined, - protos.google.firestore.v1beta1.IDocument - >, - ): void; - listDocuments( - request: protos.google.firestore.v1beta1.IListDocumentsRequest, - callback: PaginationCallback< - protos.google.firestore.v1beta1.IListDocumentsRequest, - protos.google.firestore.v1beta1.IListDocumentsResponse | null | undefined, - protos.google.firestore.v1beta1.IDocument - >, - ): void; - listDocuments( - request?: protos.google.firestore.v1beta1.IListDocumentsRequest, - optionsOrCallback?: - | CallOptions - | PaginationCallback< - protos.google.firestore.v1beta1.IListDocumentsRequest, - | protos.google.firestore.v1beta1.IListDocumentsResponse - | null - | undefined, - protos.google.firestore.v1beta1.IDocument - >, - callback?: PaginationCallback< - protos.google.firestore.v1beta1.IListDocumentsRequest, - protos.google.firestore.v1beta1.IListDocumentsResponse | null | undefined, - protos.google.firestore.v1beta1.IDocument - >, - ): Promise< - [ - protos.google.firestore.v1beta1.IDocument[], - protos.google.firestore.v1beta1.IListDocumentsRequest | null, - protos.google.firestore.v1beta1.IListDocumentsResponse, - ] - > | void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers['x-goog-request-params'] = - this._gaxModule.routingHeader.fromParams({ - parent: request.parent ?? '', - collection_id: request.collectionId?.toString() ?? '', - }); - this.initialize().catch((err) => { - throw err; - }); - const wrappedCallback: - | PaginationCallback< - protos.google.firestore.v1beta1.IListDocumentsRequest, - | protos.google.firestore.v1beta1.IListDocumentsResponse - | null - | undefined, - protos.google.firestore.v1beta1.IDocument - > - | undefined = callback - ? (error, values, nextPageRequest, rawResponse) => { - this._log.info('listDocuments values %j', values); - callback!(error, values, nextPageRequest, rawResponse); // We verified callback above. - } - : undefined; - this._log.info('listDocuments request %j', request); - return this.innerApiCalls - .listDocuments(request, options, wrappedCallback) - ?.then( - ([response, input, output]: [ - protos.google.firestore.v1beta1.IDocument[], - protos.google.firestore.v1beta1.IListDocumentsRequest | null, - protos.google.firestore.v1beta1.IListDocumentsResponse, - ]) => { - this._log.info('listDocuments values %j', response); - return [response, input, output]; - }, - ); - } - - /** - * Equivalent to `listDocuments`, but returns a NodeJS Stream object. - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent resource name. In the format: - * `projects/{project_id}/databases/{database_id}/documents` or - * `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - * For example: - * `projects/my-project/databases/my-database/documents` or - * `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom` - * @param {string} request.collectionId - * Required. The collection ID, relative to `parent`, to list. For example: `chatrooms` - * or `messages`. - * @param {number} request.pageSize - * The maximum number of documents to return. - * @param {string} request.pageToken - * The `next_page_token` value returned from a previous List request, if any. - * @param {string} request.orderBy - * The order to sort results by. For example: `priority desc, name`. - * @param {google.firestore.v1beta1.DocumentMask} request.mask - * The fields to return. If not set, returns all fields. - * - * If a document has a field that is not present in this mask, that field - * will not be returned in the response. - * @param {Buffer} request.transaction - * Reads documents in a transaction. - * @param {google.protobuf.Timestamp} request.readTime - * Reads documents as they were at the given time. - * This may not be older than 270 seconds. - * @param {boolean} request.showMissing - * If the list should show missing documents. A missing document is a - * document that does not exist but has sub-documents. These documents will - * be returned with a key but will not have fields, {@link protos.google.firestore.v1beta1.Document.create_time|Document.create_time}, - * or {@link protos.google.firestore.v1beta1.Document.update_time|Document.update_time} set. - * - * Requests with `show_missing` may not specify `where` or - * `order_by`. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Stream} - * An object stream which emits an object representing {@link protos.google.firestore.v1beta1.Document|Document} on 'data' event. - * The client library will perform auto-pagination by default: it will call the API as many - * times as needed. Note that it can affect your quota. - * We recommend using `listDocumentsAsync()` - * method described below for async iteration which you can stop as needed. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } - * for more details and examples. - */ - listDocumentsStream( - request?: protos.google.firestore.v1beta1.IListDocumentsRequest, - options?: CallOptions, - ): Transform { - request = request || {}; - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers['x-goog-request-params'] = - this._gaxModule.routingHeader.fromParams({ - parent: request.parent ?? '', - collection_id: request.collectionId?.toString() ?? '', - }); - const defaultCallSettings = this._defaults['listDocuments']; - const callSettings = defaultCallSettings.merge(options); - this.initialize().catch((err) => { - throw err; - }); - this._log.info('listDocuments stream %j', request); - return this.descriptors.page.listDocuments.createStream( - this.innerApiCalls.listDocuments as GaxCall, - request, - callSettings, - ); - } - - /** - * Equivalent to `listDocuments`, but returns an iterable object. - * - * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent resource name. In the format: - * `projects/{project_id}/databases/{database_id}/documents` or - * `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - * For example: - * `projects/my-project/databases/my-database/documents` or - * `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom` - * @param {string} request.collectionId - * Required. The collection ID, relative to `parent`, to list. For example: `chatrooms` - * or `messages`. - * @param {number} request.pageSize - * The maximum number of documents to return. - * @param {string} request.pageToken - * The `next_page_token` value returned from a previous List request, if any. - * @param {string} request.orderBy - * The order to sort results by. For example: `priority desc, name`. - * @param {google.firestore.v1beta1.DocumentMask} request.mask - * The fields to return. If not set, returns all fields. - * - * If a document has a field that is not present in this mask, that field - * will not be returned in the response. - * @param {Buffer} request.transaction - * Reads documents in a transaction. - * @param {google.protobuf.Timestamp} request.readTime - * Reads documents as they were at the given time. - * This may not be older than 270 seconds. - * @param {boolean} request.showMissing - * If the list should show missing documents. A missing document is a - * document that does not exist but has sub-documents. These documents will - * be returned with a key but will not have fields, {@link protos.google.firestore.v1beta1.Document.create_time|Document.create_time}, - * or {@link protos.google.firestore.v1beta1.Document.update_time|Document.update_time} set. - * - * Requests with `show_missing` may not specify `where` or - * `order_by`. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Object} - * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }. - * When you iterate the returned iterable, each element will be an object representing - * {@link protos.google.firestore.v1beta1.Document|Document}. The API will be called under the hood as needed, once per the page, - * so you can stop the iteration when you don't need more results. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta1/firestore.list_documents.js - * region_tag:firestore_v1beta1_generated_Firestore_ListDocuments_async - */ - listDocumentsAsync( - request?: protos.google.firestore.v1beta1.IListDocumentsRequest, - options?: CallOptions, - ): AsyncIterable { - request = request || {}; - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers['x-goog-request-params'] = - this._gaxModule.routingHeader.fromParams({ - parent: request.parent ?? '', - collection_id: request.collectionId?.toString() ?? '', - }); - const defaultCallSettings = this._defaults['listDocuments']; - const callSettings = defaultCallSettings.merge(options); - this.initialize().catch((err) => { - throw err; - }); - this._log.info('listDocuments iterate %j', request); - return this.descriptors.page.listDocuments.asyncIterate( - this.innerApiCalls['listDocuments'] as GaxCall, - request as {}, - callSettings, - ) as AsyncIterable; - } - /** - * Partitions a query by returning partition cursors that can be used to run - * the query in parallel. The returned partition cursors are split points that - * can be used by RunQuery as starting/end points for the query results. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent resource name. In the format: - * `projects/{project_id}/databases/{database_id}/documents`. - * Document resource names are not supported; only database resource names - * can be specified. - * @param {google.firestore.v1beta1.StructuredQuery} request.structuredQuery - * A structured query. - * Query must specify collection with all descendants and be ordered by name - * ascending. Other filters, order bys, limits, offsets, and start/end - * cursors are not supported. - * @param {number} request.partitionCount - * The desired maximum number of partition points. - * The partitions may be returned across multiple pages of results. - * The number must be positive. The actual number of partitions - * returned may be fewer. - * - * For example, this may be set to one fewer than the number of parallel - * queries to be run, or in running a data pipeline job, one fewer than the - * number of workers or compute instances available. - * @param {string} request.pageToken - * The `next_page_token` value returned from a previous call to - * PartitionQuery that may be used to get an additional set of results. - * There are no ordering guarantees between sets of results. Thus, using - * multiple sets of results will require merging the different result sets. - * - * For example, two subsequent calls using a page_token may return: - * - * * cursor B, cursor M, cursor Q - * * cursor A, cursor U, cursor W - * - * To obtain a complete result set ordered with respect to the results of the - * query supplied to PartitionQuery, the results sets should be merged: - * cursor A, cursor B, cursor M, cursor Q, cursor U, cursor W - * @param {number} request.pageSize - * The maximum number of partitions to return in this call, subject to - * `partition_count`. - * - * For example, if `partition_count` = 10 and `page_size` = 8, the first call - * to PartitionQuery will return up to 8 partitions and a `next_page_token` - * if more results exist. A second call to PartitionQuery will return up to - * 2 partitions, to complete the total of 10 specified in `partition_count`. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is Array of {@link protos.google.firestore.v1beta1.Cursor|Cursor}. - * The client library will perform auto-pagination by default: it will call the API as many - * times as needed and will merge results from all the pages into this array. - * Note that it can affect your quota. - * We recommend using `partitionQueryAsync()` - * method described below for async iteration which you can stop as needed. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } - * for more details and examples. - */ - partitionQuery( - request?: protos.google.firestore.v1beta1.IPartitionQueryRequest, - options?: CallOptions, - ): Promise< - [ - protos.google.firestore.v1beta1.ICursor[], - protos.google.firestore.v1beta1.IPartitionQueryRequest | null, - protos.google.firestore.v1beta1.IPartitionQueryResponse, - ] - >; - partitionQuery( - request: protos.google.firestore.v1beta1.IPartitionQueryRequest, - options: CallOptions, - callback: PaginationCallback< - protos.google.firestore.v1beta1.IPartitionQueryRequest, - | protos.google.firestore.v1beta1.IPartitionQueryResponse - | null - | undefined, - protos.google.firestore.v1beta1.ICursor - >, - ): void; - partitionQuery( - request: protos.google.firestore.v1beta1.IPartitionQueryRequest, - callback: PaginationCallback< - protos.google.firestore.v1beta1.IPartitionQueryRequest, - | protos.google.firestore.v1beta1.IPartitionQueryResponse - | null - | undefined, - protos.google.firestore.v1beta1.ICursor - >, - ): void; - partitionQuery( - request?: protos.google.firestore.v1beta1.IPartitionQueryRequest, - optionsOrCallback?: - | CallOptions - | PaginationCallback< - protos.google.firestore.v1beta1.IPartitionQueryRequest, - | protos.google.firestore.v1beta1.IPartitionQueryResponse - | null - | undefined, - protos.google.firestore.v1beta1.ICursor - >, - callback?: PaginationCallback< - protos.google.firestore.v1beta1.IPartitionQueryRequest, - | protos.google.firestore.v1beta1.IPartitionQueryResponse - | null - | undefined, - protos.google.firestore.v1beta1.ICursor - >, - ): Promise< - [ - protos.google.firestore.v1beta1.ICursor[], - protos.google.firestore.v1beta1.IPartitionQueryRequest | null, - protos.google.firestore.v1beta1.IPartitionQueryResponse, - ] - > | void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers['x-goog-request-params'] = - this._gaxModule.routingHeader.fromParams({ - parent: request.parent ?? '', - }); - this.initialize().catch((err) => { - throw err; - }); - const wrappedCallback: - | PaginationCallback< - protos.google.firestore.v1beta1.IPartitionQueryRequest, - | protos.google.firestore.v1beta1.IPartitionQueryResponse - | null - | undefined, - protos.google.firestore.v1beta1.ICursor - > - | undefined = callback - ? (error, values, nextPageRequest, rawResponse) => { - this._log.info('partitionQuery values %j', values); - callback!(error, values, nextPageRequest, rawResponse); // We verified callback above. - } - : undefined; - this._log.info('partitionQuery request %j', request); - return this.innerApiCalls - .partitionQuery(request, options, wrappedCallback) - ?.then( - ([response, input, output]: [ - protos.google.firestore.v1beta1.ICursor[], - protos.google.firestore.v1beta1.IPartitionQueryRequest | null, - protos.google.firestore.v1beta1.IPartitionQueryResponse, - ]) => { - this._log.info('partitionQuery values %j', response); - return [response, input, output]; - }, - ); - } - - /** - * Equivalent to `partitionQuery`, but returns a NodeJS Stream object. - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent resource name. In the format: - * `projects/{project_id}/databases/{database_id}/documents`. - * Document resource names are not supported; only database resource names - * can be specified. - * @param {google.firestore.v1beta1.StructuredQuery} request.structuredQuery - * A structured query. - * Query must specify collection with all descendants and be ordered by name - * ascending. Other filters, order bys, limits, offsets, and start/end - * cursors are not supported. - * @param {number} request.partitionCount - * The desired maximum number of partition points. - * The partitions may be returned across multiple pages of results. - * The number must be positive. The actual number of partitions - * returned may be fewer. - * - * For example, this may be set to one fewer than the number of parallel - * queries to be run, or in running a data pipeline job, one fewer than the - * number of workers or compute instances available. - * @param {string} request.pageToken - * The `next_page_token` value returned from a previous call to - * PartitionQuery that may be used to get an additional set of results. - * There are no ordering guarantees between sets of results. Thus, using - * multiple sets of results will require merging the different result sets. - * - * For example, two subsequent calls using a page_token may return: - * - * * cursor B, cursor M, cursor Q - * * cursor A, cursor U, cursor W - * - * To obtain a complete result set ordered with respect to the results of the - * query supplied to PartitionQuery, the results sets should be merged: - * cursor A, cursor B, cursor M, cursor Q, cursor U, cursor W - * @param {number} request.pageSize - * The maximum number of partitions to return in this call, subject to - * `partition_count`. - * - * For example, if `partition_count` = 10 and `page_size` = 8, the first call - * to PartitionQuery will return up to 8 partitions and a `next_page_token` - * if more results exist. A second call to PartitionQuery will return up to - * 2 partitions, to complete the total of 10 specified in `partition_count`. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Stream} - * An object stream which emits an object representing {@link protos.google.firestore.v1beta1.Cursor|Cursor} on 'data' event. - * The client library will perform auto-pagination by default: it will call the API as many - * times as needed. Note that it can affect your quota. - * We recommend using `partitionQueryAsync()` - * method described below for async iteration which you can stop as needed. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } - * for more details and examples. - */ - partitionQueryStream( - request?: protos.google.firestore.v1beta1.IPartitionQueryRequest, - options?: CallOptions, - ): Transform { - request = request || {}; - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers['x-goog-request-params'] = - this._gaxModule.routingHeader.fromParams({ - parent: request.parent ?? '', - }); - const defaultCallSettings = this._defaults['partitionQuery']; - const callSettings = defaultCallSettings.merge(options); - this.initialize().catch((err) => { - throw err; - }); - this._log.info('partitionQuery stream %j', request); - return this.descriptors.page.partitionQuery.createStream( - this.innerApiCalls.partitionQuery as GaxCall, - request, - callSettings, - ); - } - - /** - * Equivalent to `partitionQuery`, but returns an iterable object. - * - * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent resource name. In the format: - * `projects/{project_id}/databases/{database_id}/documents`. - * Document resource names are not supported; only database resource names - * can be specified. - * @param {google.firestore.v1beta1.StructuredQuery} request.structuredQuery - * A structured query. - * Query must specify collection with all descendants and be ordered by name - * ascending. Other filters, order bys, limits, offsets, and start/end - * cursors are not supported. - * @param {number} request.partitionCount - * The desired maximum number of partition points. - * The partitions may be returned across multiple pages of results. - * The number must be positive. The actual number of partitions - * returned may be fewer. - * - * For example, this may be set to one fewer than the number of parallel - * queries to be run, or in running a data pipeline job, one fewer than the - * number of workers or compute instances available. - * @param {string} request.pageToken - * The `next_page_token` value returned from a previous call to - * PartitionQuery that may be used to get an additional set of results. - * There are no ordering guarantees between sets of results. Thus, using - * multiple sets of results will require merging the different result sets. - * - * For example, two subsequent calls using a page_token may return: - * - * * cursor B, cursor M, cursor Q - * * cursor A, cursor U, cursor W - * - * To obtain a complete result set ordered with respect to the results of the - * query supplied to PartitionQuery, the results sets should be merged: - * cursor A, cursor B, cursor M, cursor Q, cursor U, cursor W - * @param {number} request.pageSize - * The maximum number of partitions to return in this call, subject to - * `partition_count`. - * - * For example, if `partition_count` = 10 and `page_size` = 8, the first call - * to PartitionQuery will return up to 8 partitions and a `next_page_token` - * if more results exist. A second call to PartitionQuery will return up to - * 2 partitions, to complete the total of 10 specified in `partition_count`. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Object} - * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }. - * When you iterate the returned iterable, each element will be an object representing - * {@link protos.google.firestore.v1beta1.Cursor|Cursor}. The API will be called under the hood as needed, once per the page, - * so you can stop the iteration when you don't need more results. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta1/firestore.partition_query.js - * region_tag:firestore_v1beta1_generated_Firestore_PartitionQuery_async - */ - partitionQueryAsync( - request?: protos.google.firestore.v1beta1.IPartitionQueryRequest, - options?: CallOptions, - ): AsyncIterable { - request = request || {}; - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers['x-goog-request-params'] = - this._gaxModule.routingHeader.fromParams({ - parent: request.parent ?? '', - }); - const defaultCallSettings = this._defaults['partitionQuery']; - const callSettings = defaultCallSettings.merge(options); - this.initialize().catch((err) => { - throw err; - }); - this._log.info('partitionQuery iterate %j', request); - return this.descriptors.page.partitionQuery.asyncIterate( - this.innerApiCalls['partitionQuery'] as GaxCall, - request as {}, - callSettings, - ) as AsyncIterable; - } - /** - * Lists all the collection IDs underneath a document. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent document. In the format: - * `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - * For example: - * `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom` - * @param {number} request.pageSize - * The maximum number of results to return. - * @param {string} request.pageToken - * A page token. Must be a value from - * {@link protos.google.firestore.v1beta1.ListCollectionIdsResponse|ListCollectionIdsResponse}. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is Array of string. - * The client library will perform auto-pagination by default: it will call the API as many - * times as needed and will merge results from all the pages into this array. - * Note that it can affect your quota. - * We recommend using `listCollectionIdsAsync()` - * method described below for async iteration which you can stop as needed. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } - * for more details and examples. - */ - listCollectionIds( - request?: protos.google.firestore.v1beta1.IListCollectionIdsRequest, - options?: CallOptions, - ): Promise< - [ - string[], - protos.google.firestore.v1beta1.IListCollectionIdsRequest | null, - protos.google.firestore.v1beta1.IListCollectionIdsResponse, - ] - >; - listCollectionIds( - request: protos.google.firestore.v1beta1.IListCollectionIdsRequest, - options: CallOptions, - callback: PaginationCallback< - protos.google.firestore.v1beta1.IListCollectionIdsRequest, - | protos.google.firestore.v1beta1.IListCollectionIdsResponse - | null - | undefined, - string - >, - ): void; - listCollectionIds( - request: protos.google.firestore.v1beta1.IListCollectionIdsRequest, - callback: PaginationCallback< - protos.google.firestore.v1beta1.IListCollectionIdsRequest, - | protos.google.firestore.v1beta1.IListCollectionIdsResponse - | null - | undefined, - string - >, - ): void; - listCollectionIds( - request?: protos.google.firestore.v1beta1.IListCollectionIdsRequest, - optionsOrCallback?: - | CallOptions - | PaginationCallback< - protos.google.firestore.v1beta1.IListCollectionIdsRequest, - | protos.google.firestore.v1beta1.IListCollectionIdsResponse - | null - | undefined, - string - >, - callback?: PaginationCallback< - protos.google.firestore.v1beta1.IListCollectionIdsRequest, - | protos.google.firestore.v1beta1.IListCollectionIdsResponse - | null - | undefined, - string - >, - ): Promise< - [ - string[], - protos.google.firestore.v1beta1.IListCollectionIdsRequest | null, - protos.google.firestore.v1beta1.IListCollectionIdsResponse, - ] - > | void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers['x-goog-request-params'] = - this._gaxModule.routingHeader.fromParams({ - parent: request.parent ?? '', - }); - this.initialize().catch((err) => { - throw err; - }); - const wrappedCallback: - | PaginationCallback< - protos.google.firestore.v1beta1.IListCollectionIdsRequest, - | protos.google.firestore.v1beta1.IListCollectionIdsResponse - | null - | undefined, - string - > - | undefined = callback - ? (error, values, nextPageRequest, rawResponse) => { - this._log.info('listCollectionIds values %j', values); - callback!(error, values, nextPageRequest, rawResponse); // We verified callback above. - } - : undefined; - this._log.info('listCollectionIds request %j', request); - return this.innerApiCalls - .listCollectionIds(request, options, wrappedCallback) - ?.then( - ([response, input, output]: [ - string[], - protos.google.firestore.v1beta1.IListCollectionIdsRequest | null, - protos.google.firestore.v1beta1.IListCollectionIdsResponse, - ]) => { - this._log.info('listCollectionIds values %j', response); - return [response, input, output]; - }, - ); - } - - /** - * Equivalent to `listCollectionIds`, but returns a NodeJS Stream object. - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent document. In the format: - * `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - * For example: - * `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom` - * @param {number} request.pageSize - * The maximum number of results to return. - * @param {string} request.pageToken - * A page token. Must be a value from - * {@link protos.google.firestore.v1beta1.ListCollectionIdsResponse|ListCollectionIdsResponse}. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Stream} - * An object stream which emits an object representing string on 'data' event. - * The client library will perform auto-pagination by default: it will call the API as many - * times as needed. Note that it can affect your quota. - * We recommend using `listCollectionIdsAsync()` - * method described below for async iteration which you can stop as needed. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } - * for more details and examples. - */ - listCollectionIdsStream( - request?: protos.google.firestore.v1beta1.IListCollectionIdsRequest, - options?: CallOptions, - ): Transform { - request = request || {}; - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers['x-goog-request-params'] = - this._gaxModule.routingHeader.fromParams({ - parent: request.parent ?? '', - }); - const defaultCallSettings = this._defaults['listCollectionIds']; - const callSettings = defaultCallSettings.merge(options); - this.initialize().catch((err) => { - throw err; - }); - this._log.info('listCollectionIds stream %j', request); - return this.descriptors.page.listCollectionIds.createStream( - this.innerApiCalls.listCollectionIds as GaxCall, - request, - callSettings, - ); - } - - /** - * Equivalent to `listCollectionIds`, but returns an iterable object. - * - * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent document. In the format: - * `projects/{project_id}/databases/{database_id}/documents/{document_path}`. - * For example: - * `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom` - * @param {number} request.pageSize - * The maximum number of results to return. - * @param {string} request.pageToken - * A page token. Must be a value from - * {@link protos.google.firestore.v1beta1.ListCollectionIdsResponse|ListCollectionIdsResponse}. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Object} - * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }. - * When you iterate the returned iterable, each element will be an object representing - * string. The API will be called under the hood as needed, once per the page, - * so you can stop the iteration when you don't need more results. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } - * for more details and examples. - * @example include:samples/generated/v1beta1/firestore.list_collection_ids.js - * region_tag:firestore_v1beta1_generated_Firestore_ListCollectionIds_async - */ - listCollectionIdsAsync( - request?: protos.google.firestore.v1beta1.IListCollectionIdsRequest, - options?: CallOptions, - ): AsyncIterable { - request = request || {}; - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers['x-goog-request-params'] = - this._gaxModule.routingHeader.fromParams({ - parent: request.parent ?? '', - }); - const defaultCallSettings = this._defaults['listCollectionIds']; - const callSettings = defaultCallSettings.merge(options); - this.initialize().catch((err) => { - throw err; - }); - this._log.info('listCollectionIds iterate %j', request); - return this.descriptors.page.listCollectionIds.asyncIterate( - this.innerApiCalls['listCollectionIds'] as GaxCall, - request as {}, - callSettings, - ) as AsyncIterable; - } - - /** - * Terminate the gRPC channel and close the client. - * - * The client will no longer be usable and all future behavior is undefined. - * @returns {Promise} A promise that resolves when the client is closed. - */ - close(): Promise { - if (this.firestoreStub && !this._terminated) { - return this.firestoreStub.then((stub) => { - this._log.info('ending gRPC channel'); - this._terminated = true; - stub.close(); - }); - } - return Promise.resolve(); - } -} diff --git a/packages/google-cloud-firestore-api/src/v1beta1/firestore_client_config.json b/packages/google-cloud-firestore-api/src/v1beta1/firestore_client_config.json deleted file mode 100644 index b0366d662600..000000000000 --- a/packages/google-cloud-firestore-api/src/v1beta1/firestore_client_config.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "interfaces": { - "google.firestore.v1beta1.Firestore": { - "retry_codes": { - "non_idempotent": [], - "idempotent": [ - "DEADLINE_EXCEEDED", - "UNAVAILABLE" - ] - }, - "retry_params": { - "default": { - "initial_retry_delay_millis": 100, - "retry_delay_multiplier": 1.3, - "max_retry_delay_millis": 60000, - "initial_rpc_timeout_millis": 60000, - "rpc_timeout_multiplier": 1, - "max_rpc_timeout_millis": 60000, - "total_timeout_millis": 600000 - } - }, - "methods": { - "GetDocument": { - "timeout_millis": 60000, - "retry_codes_name": "idempotent", - "retry_params_name": "default" - }, - "ListDocuments": { - "timeout_millis": 60000, - "retry_codes_name": "idempotent", - "retry_params_name": "default" - }, - "UpdateDocument": { - "timeout_millis": 60000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - }, - "DeleteDocument": { - "timeout_millis": 60000, - "retry_codes_name": "idempotent", - "retry_params_name": "default" - }, - "BatchGetDocuments": { - "timeout_millis": 300000, - "retry_codes_name": "idempotent", - "retry_params_name": "default" - }, - "BeginTransaction": { - "timeout_millis": 60000, - "retry_codes_name": "idempotent", - "retry_params_name": "default" - }, - "Commit": { - "timeout_millis": 60000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - }, - "Rollback": { - "timeout_millis": 60000, - "retry_codes_name": "idempotent", - "retry_params_name": "default" - }, - "RunQuery": { - "timeout_millis": 300000, - "retry_codes_name": "idempotent", - "retry_params_name": "default" - }, - "PartitionQuery": { - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - }, - "Write": { - "timeout_millis": 86400000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - }, - "Listen": { - "timeout_millis": 86400000, - "retry_codes_name": "idempotent", - "retry_params_name": "default" - }, - "ListCollectionIds": { - "timeout_millis": 60000, - "retry_codes_name": "idempotent", - "retry_params_name": "default" - }, - "BatchWrite": { - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - }, - "CreateDocument": { - "timeout_millis": 60000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - } - } - } - } -} diff --git a/packages/google-cloud-firestore-api/src/v1beta1/firestore_proto_list.json b/packages/google-cloud-firestore-api/src/v1beta1/firestore_proto_list.json deleted file mode 100644 index 735b79559172..000000000000 --- a/packages/google-cloud-firestore-api/src/v1beta1/firestore_proto_list.json +++ /dev/null @@ -1,8 +0,0 @@ -[ - "../../protos/google/firestore/v1beta1/common.proto", - "../../protos/google/firestore/v1beta1/document.proto", - "../../protos/google/firestore/v1beta1/firestore.proto", - "../../protos/google/firestore/v1beta1/query.proto", - "../../protos/google/firestore/v1beta1/undeliverable_first_gen_event.proto", - "../../protos/google/firestore/v1beta1/write.proto" -] diff --git a/packages/google-cloud-firestore-api/src/v1beta1/gapic_metadata.json b/packages/google-cloud-firestore-api/src/v1beta1/gapic_metadata.json deleted file mode 100644 index 2a3edce69462..000000000000 --- a/packages/google-cloud-firestore-api/src/v1beta1/gapic_metadata.json +++ /dev/null @@ -1,165 +0,0 @@ -{ - "schema": "1.0", - "comment": "This file maps proto services/RPCs to the corresponding library clients/methods", - "language": "typescript", - "protoPackage": "google.firestore.v1beta1", - "libraryPackage": "@google-cloud/firestore-api", - "services": { - "Firestore": { - "clients": { - "grpc": { - "libraryClient": "FirestoreClient", - "rpcs": { - "GetDocument": { - "methods": [ - "getDocument" - ] - }, - "UpdateDocument": { - "methods": [ - "updateDocument" - ] - }, - "DeleteDocument": { - "methods": [ - "deleteDocument" - ] - }, - "BeginTransaction": { - "methods": [ - "beginTransaction" - ] - }, - "Commit": { - "methods": [ - "commit" - ] - }, - "Rollback": { - "methods": [ - "rollback" - ] - }, - "BatchWrite": { - "methods": [ - "batchWrite" - ] - }, - "CreateDocument": { - "methods": [ - "createDocument" - ] - }, - "BatchGetDocuments": { - "methods": [ - "batchGetDocuments" - ] - }, - "RunQuery": { - "methods": [ - "runQuery" - ] - }, - "Write": { - "methods": [ - "write" - ] - }, - "Listen": { - "methods": [ - "listen" - ] - }, - "ListDocuments": { - "methods": [ - "listDocuments", - "listDocumentsStream", - "listDocumentsAsync" - ] - }, - "PartitionQuery": { - "methods": [ - "partitionQuery", - "partitionQueryStream", - "partitionQueryAsync" - ] - }, - "ListCollectionIds": { - "methods": [ - "listCollectionIds", - "listCollectionIdsStream", - "listCollectionIdsAsync" - ] - } - } - }, - "grpc-fallback": { - "libraryClient": "FirestoreClient", - "rpcs": { - "GetDocument": { - "methods": [ - "getDocument" - ] - }, - "UpdateDocument": { - "methods": [ - "updateDocument" - ] - }, - "DeleteDocument": { - "methods": [ - "deleteDocument" - ] - }, - "BeginTransaction": { - "methods": [ - "beginTransaction" - ] - }, - "Commit": { - "methods": [ - "commit" - ] - }, - "Rollback": { - "methods": [ - "rollback" - ] - }, - "BatchWrite": { - "methods": [ - "batchWrite" - ] - }, - "CreateDocument": { - "methods": [ - "createDocument" - ] - }, - "ListDocuments": { - "methods": [ - "listDocuments", - "listDocumentsStream", - "listDocumentsAsync" - ] - }, - "PartitionQuery": { - "methods": [ - "partitionQuery", - "partitionQueryStream", - "partitionQueryAsync" - ] - }, - "ListCollectionIds": { - "methods": [ - "listCollectionIds", - "listCollectionIdsStream", - "listCollectionIdsAsync" - ] - } - } - } - } - } - } -} diff --git a/packages/google-cloud-firestore-api/src/v1beta1/index.ts b/packages/google-cloud-firestore-api/src/v1beta1/index.ts deleted file mode 100644 index 8c1a2503fd89..000000000000 --- a/packages/google-cloud-firestore-api/src/v1beta1/index.ts +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - -export { FirestoreClient } from './firestore_client'; diff --git a/packages/google-cloud-firestore-api/test/gapic_firestore_v1beta1.ts b/packages/google-cloud-firestore-api/test/gapic_firestore_v1beta1.ts deleted file mode 100644 index 9e83a32efcf4..000000000000 --- a/packages/google-cloud-firestore-api/test/gapic_firestore_v1beta1.ts +++ /dev/null @@ -1,2857 +0,0 @@ -// Copyright 2026 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - -import * as protos from '../protos/protos'; -import * as assert from 'assert'; -import * as sinon from 'sinon'; -import { SinonStub } from 'sinon'; -import { describe, it } from 'mocha'; -import * as firestoreModule from '../src'; - -import { PassThrough } from 'stream'; - -import { protobuf } from 'google-gax'; - -// Dynamically loaded proto JSON is needed to get the type information -// to fill in default values for request objects -const root = protobuf.Root.fromJSON( - require('../protos/protos.json'), -).resolveAll(); - -// eslint-disable-next-line @typescript-eslint/no-unused-vars -function getTypeDefaultValue(typeName: string, fields: string[]) { - let type = root.lookupType(typeName) as protobuf.Type; - for (const field of fields.slice(0, -1)) { - type = type.fields[field]?.resolvedType as protobuf.Type; - } - return type.fields[fields[fields.length - 1]]?.defaultValue; -} - -function generateSampleMessage(instance: T) { - const filledObject = ( - instance.constructor as typeof protobuf.Message - ).toObject(instance as protobuf.Message, { defaults: true }); - return (instance.constructor as typeof protobuf.Message).fromObject( - filledObject, - ) as T; -} - -function stubSimpleCall(response?: ResponseType, error?: Error) { - return error - ? sinon.stub().rejects(error) - : sinon.stub().resolves([response]); -} - -function stubSimpleCallWithCallback( - response?: ResponseType, - error?: Error, -) { - return error - ? sinon.stub().callsArgWith(2, error) - : sinon.stub().callsArgWith(2, null, response); -} - -function stubServerStreamingCall( - response?: ResponseType, - error?: Error, -) { - const transformStub = error - ? sinon.stub().callsArgWith(2, error) - : sinon.stub().callsArgWith(2, null, response); - const mockStream = new PassThrough({ - objectMode: true, - transform: transformStub, - }); - // write something to the stream to trigger transformStub and send the response back to the client - setImmediate(() => { - mockStream.write({}); - }); - setImmediate(() => { - mockStream.end(); - }); - return sinon.stub().returns(mockStream); -} - -function stubBidiStreamingCall( - response?: ResponseType, - error?: Error, -) { - const transformStub = error - ? sinon.stub().callsArgWith(2, error) - : sinon.stub().callsArgWith(2, null, response); - const mockStream = new PassThrough({ - objectMode: true, - transform: transformStub, - }); - return sinon.stub().returns(mockStream); -} - -function stubPageStreamingCall( - responses?: ResponseType[], - error?: Error, -) { - const pagingStub = sinon.stub(); - if (responses) { - for (let i = 0; i < responses.length; ++i) { - pagingStub.onCall(i).callsArgWith(2, null, responses[i]); - } - } - const transformStub = error - ? sinon.stub().callsArgWith(2, error) - : pagingStub; - const mockStream = new PassThrough({ - objectMode: true, - transform: transformStub, - }); - // trigger as many responses as needed - if (responses) { - for (let i = 0; i < responses.length; ++i) { - setImmediate(() => { - mockStream.write({}); - }); - } - setImmediate(() => { - mockStream.end(); - }); - } else { - setImmediate(() => { - mockStream.write({}); - }); - setImmediate(() => { - mockStream.end(); - }); - } - return sinon.stub().returns(mockStream); -} - -function stubAsyncIterationCall( - responses?: ResponseType[], - error?: Error, -) { - let counter = 0; - const asyncIterable = { - [Symbol.asyncIterator]() { - return { - async next() { - if (error) { - return Promise.reject(error); - } - if (counter >= responses!.length) { - return Promise.resolve({ done: true, value: undefined }); - } - return Promise.resolve({ done: false, value: responses![counter++] }); - }, - }; - }, - }; - return sinon.stub().returns(asyncIterable); -} - -describe('v1beta1.FirestoreClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new firestoreModule.v1beta1.FirestoreClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'firestore.googleapis.com'); - }); - - it('has universeDomain', () => { - const client = new firestoreModule.v1beta1.FirestoreClient(); - const universeDomain = client.universeDomain; - assert.strictEqual(universeDomain, 'googleapis.com'); - }); - - if ( - typeof process === 'object' && - typeof process.emitWarning === 'function' - ) { - it('throws DeprecationWarning if static servicePath is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const servicePath = firestoreModule.v1beta1.FirestoreClient.servicePath; - assert.strictEqual(servicePath, 'firestore.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = firestoreModule.v1beta1.FirestoreClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'firestore.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - universeDomain: 'example.com', - }); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'firestore.example.com'); - }); - - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - universe_domain: 'example.com', - }); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'firestore.example.com'); - }); - - if (typeof process === 'object' && 'env' in process) { - describe('GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable', () => { - it('sets apiEndpoint from environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new firestoreModule.v1beta1.FirestoreClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'firestore.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - - it('value configured in code has priority over environment variable', () => { - const saved = process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = 'example.com'; - const client = new firestoreModule.v1beta1.FirestoreClient({ - universeDomain: 'configured.example.com', - }); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'firestore.configured.example.com'); - if (saved) { - process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN'] = saved; - } else { - delete process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']; - } - }); - }); - } - it('does not allow setting both universeDomain and universe_domain', () => { - assert.throws(() => { - new firestoreModule.v1beta1.FirestoreClient({ - universe_domain: 'example.com', - universeDomain: 'example.net', - }); - }); - }); - - it('has port', () => { - const port = firestoreModule.v1beta1.FirestoreClient.port; - assert(port); - assert(typeof port === 'number'); - }); - - it('should create a client with no option', () => { - const client = new firestoreModule.v1beta1.FirestoreClient(); - assert(client); - }); - - it('should create a client with gRPC fallback', () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - fallback: true, - }); - assert(client); - }); - - it('has initialize method and supports deferred initialization', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - assert.strictEqual(client.firestoreStub, undefined); - await client.initialize(); - assert(client.firestoreStub); - }); - - it('has close method for the initialized client', (done) => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - client.initialize().catch((err) => { - throw err; - }); - assert(client.firestoreStub); - client - .close() - .then(() => { - done(); - }) - .catch((err) => { - throw err; - }); - }); - - it('has close method for the non-initialized client', (done) => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - assert.strictEqual(client.firestoreStub, undefined); - client - .close() - .then(() => { - done(); - }) - .catch((err) => { - throw err; - }); - }); - - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon.stub().resolves(fakeProjectId); - const result = await client.getProjectId(); - assert.strictEqual(result, fakeProjectId); - assert((client.auth.getProjectId as SinonStub).calledWithExactly()); - }); - - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - client.auth.getProjectId = sinon - .stub() - .callsArgWith(0, null, fakeProjectId); - const promise = new Promise((resolve, reject) => { - client.getProjectId((err?: Error | null, projectId?: string | null) => { - if (err) { - reject(err); - } else { - resolve(projectId); - } - }); - }); - const result = await promise; - assert.strictEqual(result, fakeProjectId); - }); - }); - - describe('getDocument', () => { - it('invokes getDocument without error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.GetDocumentRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.GetDocumentRequest', - ['name'], - ); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; - const expectedResponse = generateSampleMessage( - new protos.google.firestore.v1beta1.Document(), - ); - client.innerApiCalls.getDocument = stubSimpleCall(expectedResponse); - const [response] = await client.getDocument(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = ( - client.innerApiCalls.getDocument as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.getDocument as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes getDocument without error using callback', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.GetDocumentRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.GetDocumentRequest', - ['name'], - ); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; - const expectedResponse = generateSampleMessage( - new protos.google.firestore.v1beta1.Document(), - ); - client.innerApiCalls.getDocument = - stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getDocument( - request, - ( - err?: Error | null, - result?: protos.google.firestore.v1beta1.IDocument | null, - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }, - ); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = ( - client.innerApiCalls.getDocument as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.getDocument as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes getDocument with error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.GetDocumentRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.GetDocumentRequest', - ['name'], - ); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; - const expectedError = new Error('expected'); - client.innerApiCalls.getDocument = stubSimpleCall( - undefined, - expectedError, - ); - await assert.rejects(client.getDocument(request), expectedError); - const actualRequest = ( - client.innerApiCalls.getDocument as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.getDocument as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes getDocument with closed client', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.GetDocumentRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.GetDocumentRequest', - ['name'], - ); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch((err) => { - throw err; - }); - await assert.rejects(client.getDocument(request), expectedError); - }); - }); - - describe('updateDocument', () => { - it('invokes updateDocument without error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.UpdateDocumentRequest(), - ); - request.document ??= {}; - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.UpdateDocumentRequest', - ['document', 'name'], - ); - request.document.name = defaultValue1; - const expectedHeaderRequestParams = `document.name=${defaultValue1 ?? ''}`; - const expectedResponse = generateSampleMessage( - new protos.google.firestore.v1beta1.Document(), - ); - client.innerApiCalls.updateDocument = stubSimpleCall(expectedResponse); - const [response] = await client.updateDocument(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = ( - client.innerApiCalls.updateDocument as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.updateDocument as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes updateDocument without error using callback', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.UpdateDocumentRequest(), - ); - request.document ??= {}; - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.UpdateDocumentRequest', - ['document', 'name'], - ); - request.document.name = defaultValue1; - const expectedHeaderRequestParams = `document.name=${defaultValue1 ?? ''}`; - const expectedResponse = generateSampleMessage( - new protos.google.firestore.v1beta1.Document(), - ); - client.innerApiCalls.updateDocument = - stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.updateDocument( - request, - ( - err?: Error | null, - result?: protos.google.firestore.v1beta1.IDocument | null, - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }, - ); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = ( - client.innerApiCalls.updateDocument as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.updateDocument as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes updateDocument with error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.UpdateDocumentRequest(), - ); - request.document ??= {}; - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.UpdateDocumentRequest', - ['document', 'name'], - ); - request.document.name = defaultValue1; - const expectedHeaderRequestParams = `document.name=${defaultValue1 ?? ''}`; - const expectedError = new Error('expected'); - client.innerApiCalls.updateDocument = stubSimpleCall( - undefined, - expectedError, - ); - await assert.rejects(client.updateDocument(request), expectedError); - const actualRequest = ( - client.innerApiCalls.updateDocument as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.updateDocument as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes updateDocument with closed client', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.UpdateDocumentRequest(), - ); - request.document ??= {}; - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.UpdateDocumentRequest', - ['document', 'name'], - ); - request.document.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch((err) => { - throw err; - }); - await assert.rejects(client.updateDocument(request), expectedError); - }); - }); - - describe('deleteDocument', () => { - it('invokes deleteDocument without error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.DeleteDocumentRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.DeleteDocumentRequest', - ['name'], - ); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty(), - ); - client.innerApiCalls.deleteDocument = stubSimpleCall(expectedResponse); - const [response] = await client.deleteDocument(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = ( - client.innerApiCalls.deleteDocument as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.deleteDocument as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes deleteDocument without error using callback', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.DeleteDocumentRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.DeleteDocumentRequest', - ['name'], - ); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty(), - ); - client.innerApiCalls.deleteDocument = - stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.deleteDocument( - request, - ( - err?: Error | null, - result?: protos.google.protobuf.IEmpty | null, - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }, - ); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = ( - client.innerApiCalls.deleteDocument as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.deleteDocument as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes deleteDocument with error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.DeleteDocumentRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.DeleteDocumentRequest', - ['name'], - ); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; - const expectedError = new Error('expected'); - client.innerApiCalls.deleteDocument = stubSimpleCall( - undefined, - expectedError, - ); - await assert.rejects(client.deleteDocument(request), expectedError); - const actualRequest = ( - client.innerApiCalls.deleteDocument as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.deleteDocument as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes deleteDocument with closed client', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.DeleteDocumentRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.DeleteDocumentRequest', - ['name'], - ); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch((err) => { - throw err; - }); - await assert.rejects(client.deleteDocument(request), expectedError); - }); - }); - - describe('beginTransaction', () => { - it('invokes beginTransaction without error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.BeginTransactionRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.BeginTransactionRequest', - ['database'], - ); - request.database = defaultValue1; - const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`; - const expectedResponse = generateSampleMessage( - new protos.google.firestore.v1beta1.BeginTransactionResponse(), - ); - client.innerApiCalls.beginTransaction = stubSimpleCall(expectedResponse); - const [response] = await client.beginTransaction(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = ( - client.innerApiCalls.beginTransaction as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.beginTransaction as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes beginTransaction without error using callback', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.BeginTransactionRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.BeginTransactionRequest', - ['database'], - ); - request.database = defaultValue1; - const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`; - const expectedResponse = generateSampleMessage( - new protos.google.firestore.v1beta1.BeginTransactionResponse(), - ); - client.innerApiCalls.beginTransaction = - stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.beginTransaction( - request, - ( - err?: Error | null, - result?: protos.google.firestore.v1beta1.IBeginTransactionResponse | null, - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }, - ); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = ( - client.innerApiCalls.beginTransaction as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.beginTransaction as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes beginTransaction with error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.BeginTransactionRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.BeginTransactionRequest', - ['database'], - ); - request.database = defaultValue1; - const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`; - const expectedError = new Error('expected'); - client.innerApiCalls.beginTransaction = stubSimpleCall( - undefined, - expectedError, - ); - await assert.rejects(client.beginTransaction(request), expectedError); - const actualRequest = ( - client.innerApiCalls.beginTransaction as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.beginTransaction as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes beginTransaction with closed client', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.BeginTransactionRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.BeginTransactionRequest', - ['database'], - ); - request.database = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch((err) => { - throw err; - }); - await assert.rejects(client.beginTransaction(request), expectedError); - }); - }); - - describe('commit', () => { - it('invokes commit without error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.CommitRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.CommitRequest', - ['database'], - ); - request.database = defaultValue1; - const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`; - const expectedResponse = generateSampleMessage( - new protos.google.firestore.v1beta1.CommitResponse(), - ); - client.innerApiCalls.commit = stubSimpleCall(expectedResponse); - const [response] = await client.commit(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.commit as SinonStub).getCall( - 0, - ).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.commit as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes commit without error using callback', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.CommitRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.CommitRequest', - ['database'], - ); - request.database = defaultValue1; - const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`; - const expectedResponse = generateSampleMessage( - new protos.google.firestore.v1beta1.CommitResponse(), - ); - client.innerApiCalls.commit = - stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.commit( - request, - ( - err?: Error | null, - result?: protos.google.firestore.v1beta1.ICommitResponse | null, - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }, - ); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.commit as SinonStub).getCall( - 0, - ).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.commit as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes commit with error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.CommitRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.CommitRequest', - ['database'], - ); - request.database = defaultValue1; - const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`; - const expectedError = new Error('expected'); - client.innerApiCalls.commit = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.commit(request), expectedError); - const actualRequest = (client.innerApiCalls.commit as SinonStub).getCall( - 0, - ).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.commit as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes commit with closed client', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.CommitRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.CommitRequest', - ['database'], - ); - request.database = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch((err) => { - throw err; - }); - await assert.rejects(client.commit(request), expectedError); - }); - }); - - describe('rollback', () => { - it('invokes rollback without error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.RollbackRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.RollbackRequest', - ['database'], - ); - request.database = defaultValue1; - const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`; - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty(), - ); - client.innerApiCalls.rollback = stubSimpleCall(expectedResponse); - const [response] = await client.rollback(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = ( - client.innerApiCalls.rollback as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.rollback as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes rollback without error using callback', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.RollbackRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.RollbackRequest', - ['database'], - ); - request.database = defaultValue1; - const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`; - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty(), - ); - client.innerApiCalls.rollback = - stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.rollback( - request, - ( - err?: Error | null, - result?: protos.google.protobuf.IEmpty | null, - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }, - ); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = ( - client.innerApiCalls.rollback as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.rollback as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes rollback with error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.RollbackRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.RollbackRequest', - ['database'], - ); - request.database = defaultValue1; - const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`; - const expectedError = new Error('expected'); - client.innerApiCalls.rollback = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.rollback(request), expectedError); - const actualRequest = ( - client.innerApiCalls.rollback as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.rollback as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes rollback with closed client', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.RollbackRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.RollbackRequest', - ['database'], - ); - request.database = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch((err) => { - throw err; - }); - await assert.rejects(client.rollback(request), expectedError); - }); - }); - - describe('batchWrite', () => { - it('invokes batchWrite without error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.BatchWriteRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.BatchWriteRequest', - ['database'], - ); - request.database = defaultValue1; - const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`; - const expectedResponse = generateSampleMessage( - new protos.google.firestore.v1beta1.BatchWriteResponse(), - ); - client.innerApiCalls.batchWrite = stubSimpleCall(expectedResponse); - const [response] = await client.batchWrite(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = ( - client.innerApiCalls.batchWrite as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.batchWrite as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes batchWrite without error using callback', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.BatchWriteRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.BatchWriteRequest', - ['database'], - ); - request.database = defaultValue1; - const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`; - const expectedResponse = generateSampleMessage( - new protos.google.firestore.v1beta1.BatchWriteResponse(), - ); - client.innerApiCalls.batchWrite = - stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.batchWrite( - request, - ( - err?: Error | null, - result?: protos.google.firestore.v1beta1.IBatchWriteResponse | null, - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }, - ); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = ( - client.innerApiCalls.batchWrite as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.batchWrite as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes batchWrite with error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.BatchWriteRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.BatchWriteRequest', - ['database'], - ); - request.database = defaultValue1; - const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`; - const expectedError = new Error('expected'); - client.innerApiCalls.batchWrite = stubSimpleCall( - undefined, - expectedError, - ); - await assert.rejects(client.batchWrite(request), expectedError); - const actualRequest = ( - client.innerApiCalls.batchWrite as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.batchWrite as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes batchWrite with closed client', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.BatchWriteRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.BatchWriteRequest', - ['database'], - ); - request.database = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch((err) => { - throw err; - }); - await assert.rejects(client.batchWrite(request), expectedError); - }); - }); - - describe('createDocument', () => { - it('invokes createDocument without error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.CreateDocumentRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.CreateDocumentRequest', - ['parent'], - ); - request.parent = defaultValue1; - const defaultValue2 = getTypeDefaultValue( - '.google.firestore.v1beta1.CreateDocumentRequest', - ['collectionId'], - ); - request.collectionId = defaultValue2; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}&collection_id=${defaultValue2 ?? ''}`; - const expectedResponse = generateSampleMessage( - new protos.google.firestore.v1beta1.Document(), - ); - client.innerApiCalls.createDocument = stubSimpleCall(expectedResponse); - const [response] = await client.createDocument(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = ( - client.innerApiCalls.createDocument as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.createDocument as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes createDocument without error using callback', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.CreateDocumentRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.CreateDocumentRequest', - ['parent'], - ); - request.parent = defaultValue1; - const defaultValue2 = getTypeDefaultValue( - '.google.firestore.v1beta1.CreateDocumentRequest', - ['collectionId'], - ); - request.collectionId = defaultValue2; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}&collection_id=${defaultValue2 ?? ''}`; - const expectedResponse = generateSampleMessage( - new protos.google.firestore.v1beta1.Document(), - ); - client.innerApiCalls.createDocument = - stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.createDocument( - request, - ( - err?: Error | null, - result?: protos.google.firestore.v1beta1.IDocument | null, - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }, - ); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = ( - client.innerApiCalls.createDocument as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.createDocument as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes createDocument with error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.CreateDocumentRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.CreateDocumentRequest', - ['parent'], - ); - request.parent = defaultValue1; - const defaultValue2 = getTypeDefaultValue( - '.google.firestore.v1beta1.CreateDocumentRequest', - ['collectionId'], - ); - request.collectionId = defaultValue2; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}&collection_id=${defaultValue2 ?? ''}`; - const expectedError = new Error('expected'); - client.innerApiCalls.createDocument = stubSimpleCall( - undefined, - expectedError, - ); - await assert.rejects(client.createDocument(request), expectedError); - const actualRequest = ( - client.innerApiCalls.createDocument as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.createDocument as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes createDocument with closed client', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.CreateDocumentRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.CreateDocumentRequest', - ['parent'], - ); - request.parent = defaultValue1; - const defaultValue2 = getTypeDefaultValue( - '.google.firestore.v1beta1.CreateDocumentRequest', - ['collectionId'], - ); - request.collectionId = defaultValue2; - const expectedError = new Error('The client has already been closed.'); - client.close().catch((err) => { - throw err; - }); - await assert.rejects(client.createDocument(request), expectedError); - }); - }); - - describe('batchGetDocuments', () => { - it('invokes batchGetDocuments without error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.BatchGetDocumentsRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.BatchGetDocumentsRequest', - ['database'], - ); - request.database = defaultValue1; - const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`; - const expectedResponse = generateSampleMessage( - new protos.google.firestore.v1beta1.BatchGetDocumentsResponse(), - ); - client.innerApiCalls.batchGetDocuments = - stubServerStreamingCall(expectedResponse); - const stream = client.batchGetDocuments(request); - const promise = new Promise((resolve, reject) => { - stream.on( - 'data', - ( - response: protos.google.firestore.v1beta1.BatchGetDocumentsResponse, - ) => { - resolve(response); - }, - ); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = ( - client.innerApiCalls.batchGetDocuments as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.batchGetDocuments as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes batchGetDocuments without error and gaxServerStreamingRetries enabled', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - gaxServerStreamingRetries: true, - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.BatchGetDocumentsRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.BatchGetDocumentsRequest', - ['database'], - ); - request.database = defaultValue1; - const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`; - const expectedResponse = generateSampleMessage( - new protos.google.firestore.v1beta1.BatchGetDocumentsResponse(), - ); - client.innerApiCalls.batchGetDocuments = - stubServerStreamingCall(expectedResponse); - const stream = client.batchGetDocuments(request); - const promise = new Promise((resolve, reject) => { - stream.on( - 'data', - ( - response: protos.google.firestore.v1beta1.BatchGetDocumentsResponse, - ) => { - resolve(response); - }, - ); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = ( - client.innerApiCalls.batchGetDocuments as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.batchGetDocuments as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes batchGetDocuments with error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.BatchGetDocumentsRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.BatchGetDocumentsRequest', - ['database'], - ); - request.database = defaultValue1; - const expectedHeaderRequestParams = `database=${defaultValue1 ?? ''}`; - const expectedError = new Error('expected'); - client.innerApiCalls.batchGetDocuments = stubServerStreamingCall( - undefined, - expectedError, - ); - const stream = client.batchGetDocuments(request); - const promise = new Promise((resolve, reject) => { - stream.on( - 'data', - ( - response: protos.google.firestore.v1beta1.BatchGetDocumentsResponse, - ) => { - resolve(response); - }, - ); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - await assert.rejects(promise, expectedError); - const actualRequest = ( - client.innerApiCalls.batchGetDocuments as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.batchGetDocuments as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes batchGetDocuments with closed client', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.BatchGetDocumentsRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.BatchGetDocumentsRequest', - ['database'], - ); - request.database = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch((err) => { - throw err; - }); - const stream = client.batchGetDocuments(request, { - retryRequestOptions: { noResponseRetries: 0 }, - }); - const promise = new Promise((resolve, reject) => { - stream.on( - 'data', - ( - response: protos.google.firestore.v1beta1.BatchGetDocumentsResponse, - ) => { - resolve(response); - }, - ); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - await assert.rejects(promise, expectedError); - }); - it('should create a client with gaxServerStreamingRetries enabled', () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - gaxServerStreamingRetries: true, - }); - assert(client); - }); - }); - - describe('runQuery', () => { - it('invokes runQuery without error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.RunQueryRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.RunQueryRequest', - ['parent'], - ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; - const expectedResponse = generateSampleMessage( - new protos.google.firestore.v1beta1.RunQueryResponse(), - ); - client.innerApiCalls.runQuery = stubServerStreamingCall(expectedResponse); - const stream = client.runQuery(request); - const promise = new Promise((resolve, reject) => { - stream.on( - 'data', - (response: protos.google.firestore.v1beta1.RunQueryResponse) => { - resolve(response); - }, - ); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = ( - client.innerApiCalls.runQuery as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.runQuery as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes runQuery without error and gaxServerStreamingRetries enabled', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - gaxServerStreamingRetries: true, - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.RunQueryRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.RunQueryRequest', - ['parent'], - ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; - const expectedResponse = generateSampleMessage( - new protos.google.firestore.v1beta1.RunQueryResponse(), - ); - client.innerApiCalls.runQuery = stubServerStreamingCall(expectedResponse); - const stream = client.runQuery(request); - const promise = new Promise((resolve, reject) => { - stream.on( - 'data', - (response: protos.google.firestore.v1beta1.RunQueryResponse) => { - resolve(response); - }, - ); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = ( - client.innerApiCalls.runQuery as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.runQuery as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes runQuery with error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.RunQueryRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.RunQueryRequest', - ['parent'], - ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; - const expectedError = new Error('expected'); - client.innerApiCalls.runQuery = stubServerStreamingCall( - undefined, - expectedError, - ); - const stream = client.runQuery(request); - const promise = new Promise((resolve, reject) => { - stream.on( - 'data', - (response: protos.google.firestore.v1beta1.RunQueryResponse) => { - resolve(response); - }, - ); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - await assert.rejects(promise, expectedError); - const actualRequest = ( - client.innerApiCalls.runQuery as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.runQuery as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes runQuery with closed client', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.RunQueryRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.RunQueryRequest', - ['parent'], - ); - request.parent = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch((err) => { - throw err; - }); - const stream = client.runQuery(request, { - retryRequestOptions: { noResponseRetries: 0 }, - }); - const promise = new Promise((resolve, reject) => { - stream.on( - 'data', - (response: protos.google.firestore.v1beta1.RunQueryResponse) => { - resolve(response); - }, - ); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - await assert.rejects(promise, expectedError); - }); - it('should create a client with gaxServerStreamingRetries enabled', () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - gaxServerStreamingRetries: true, - }); - assert(client); - }); - }); - - describe('write', () => { - it('invokes write without error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.WriteRequest(), - ); - - const expectedResponse = generateSampleMessage( - new protos.google.firestore.v1beta1.WriteResponse(), - ); - client.innerApiCalls.write = stubBidiStreamingCall(expectedResponse); - const stream = client.write(); - const promise = new Promise((resolve, reject) => { - stream.on( - 'data', - (response: protos.google.firestore.v1beta1.WriteResponse) => { - resolve(response); - }, - ); - stream.on('error', (err: Error) => { - reject(err); - }); - stream.write(request); - stream.end(); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.write as SinonStub).getCall(0).calledWith(null), - ); - assert.deepStrictEqual( - ((stream as unknown as PassThrough)._transform as SinonStub).getCall(0) - .args[0], - request, - ); - }); - - it('invokes write with error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.WriteRequest(), - ); - const expectedError = new Error('expected'); - client.innerApiCalls.write = stubBidiStreamingCall( - undefined, - expectedError, - ); - const stream = client.write(); - const promise = new Promise((resolve, reject) => { - stream.on( - 'data', - (response: protos.google.firestore.v1beta1.WriteResponse) => { - resolve(response); - }, - ); - stream.on('error', (err: Error) => { - reject(err); - }); - stream.write(request); - stream.end(); - }); - await assert.rejects(promise, expectedError); - assert( - (client.innerApiCalls.write as SinonStub).getCall(0).calledWith(null), - ); - assert.deepStrictEqual( - ((stream as unknown as PassThrough)._transform as SinonStub).getCall(0) - .args[0], - request, - ); - }); - }); - - describe('listen', () => { - it('invokes listen without error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.ListenRequest(), - ); - - const expectedResponse = generateSampleMessage( - new protos.google.firestore.v1beta1.ListenResponse(), - ); - client.innerApiCalls.listen = stubBidiStreamingCall(expectedResponse); - const stream = client.listen(); - const promise = new Promise((resolve, reject) => { - stream.on( - 'data', - (response: protos.google.firestore.v1beta1.ListenResponse) => { - resolve(response); - }, - ); - stream.on('error', (err: Error) => { - reject(err); - }); - stream.write(request); - stream.end(); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert( - (client.innerApiCalls.listen as SinonStub).getCall(0).calledWith(null), - ); - assert.deepStrictEqual( - ((stream as unknown as PassThrough)._transform as SinonStub).getCall(0) - .args[0], - request, - ); - }); - - it('invokes listen with error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.ListenRequest(), - ); - const expectedError = new Error('expected'); - client.innerApiCalls.listen = stubBidiStreamingCall( - undefined, - expectedError, - ); - const stream = client.listen(); - const promise = new Promise((resolve, reject) => { - stream.on( - 'data', - (response: protos.google.firestore.v1beta1.ListenResponse) => { - resolve(response); - }, - ); - stream.on('error', (err: Error) => { - reject(err); - }); - stream.write(request); - stream.end(); - }); - await assert.rejects(promise, expectedError); - assert( - (client.innerApiCalls.listen as SinonStub).getCall(0).calledWith(null), - ); - assert.deepStrictEqual( - ((stream as unknown as PassThrough)._transform as SinonStub).getCall(0) - .args[0], - request, - ); - }); - }); - - describe('listDocuments', () => { - it('invokes listDocuments without error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.ListDocumentsRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.ListDocumentsRequest', - ['parent'], - ); - request.parent = defaultValue1; - const defaultValue2 = getTypeDefaultValue( - '.google.firestore.v1beta1.ListDocumentsRequest', - ['collectionId'], - ); - request.collectionId = defaultValue2; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}&collection_id=${defaultValue2 ?? ''}`; - const expectedResponse = [ - generateSampleMessage(new protos.google.firestore.v1beta1.Document()), - generateSampleMessage(new protos.google.firestore.v1beta1.Document()), - generateSampleMessage(new protos.google.firestore.v1beta1.Document()), - ]; - client.innerApiCalls.listDocuments = stubSimpleCall(expectedResponse); - const [response] = await client.listDocuments(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = ( - client.innerApiCalls.listDocuments as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.listDocuments as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listDocuments without error using callback', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.ListDocumentsRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.ListDocumentsRequest', - ['parent'], - ); - request.parent = defaultValue1; - const defaultValue2 = getTypeDefaultValue( - '.google.firestore.v1beta1.ListDocumentsRequest', - ['collectionId'], - ); - request.collectionId = defaultValue2; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}&collection_id=${defaultValue2 ?? ''}`; - const expectedResponse = [ - generateSampleMessage(new protos.google.firestore.v1beta1.Document()), - generateSampleMessage(new protos.google.firestore.v1beta1.Document()), - generateSampleMessage(new protos.google.firestore.v1beta1.Document()), - ]; - client.innerApiCalls.listDocuments = - stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.listDocuments( - request, - ( - err?: Error | null, - result?: protos.google.firestore.v1beta1.IDocument[] | null, - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }, - ); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = ( - client.innerApiCalls.listDocuments as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.listDocuments as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listDocuments with error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.ListDocumentsRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.ListDocumentsRequest', - ['parent'], - ); - request.parent = defaultValue1; - const defaultValue2 = getTypeDefaultValue( - '.google.firestore.v1beta1.ListDocumentsRequest', - ['collectionId'], - ); - request.collectionId = defaultValue2; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}&collection_id=${defaultValue2 ?? ''}`; - const expectedError = new Error('expected'); - client.innerApiCalls.listDocuments = stubSimpleCall( - undefined, - expectedError, - ); - await assert.rejects(client.listDocuments(request), expectedError); - const actualRequest = ( - client.innerApiCalls.listDocuments as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.listDocuments as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listDocumentsStream without error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.ListDocumentsRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.ListDocumentsRequest', - ['parent'], - ); - request.parent = defaultValue1; - const defaultValue2 = getTypeDefaultValue( - '.google.firestore.v1beta1.ListDocumentsRequest', - ['collectionId'], - ); - request.collectionId = defaultValue2; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}&collection_id=${defaultValue2 ?? ''}`; - const expectedResponse = [ - generateSampleMessage(new protos.google.firestore.v1beta1.Document()), - generateSampleMessage(new protos.google.firestore.v1beta1.Document()), - generateSampleMessage(new protos.google.firestore.v1beta1.Document()), - ]; - client.descriptors.page.listDocuments.createStream = - stubPageStreamingCall(expectedResponse); - const stream = client.listDocumentsStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.firestore.v1beta1.Document[] = []; - stream.on( - 'data', - (response: protos.google.firestore.v1beta1.Document) => { - responses.push(response); - }, - ); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - const responses = await promise; - assert.deepStrictEqual(responses, expectedResponse); - assert( - (client.descriptors.page.listDocuments.createStream as SinonStub) - .getCall(0) - .calledWith(client.innerApiCalls.listDocuments, request), - ); - assert( - (client.descriptors.page.listDocuments.createStream as SinonStub) - .getCall(0) - .args[2].otherArgs.headers[ - 'x-goog-request-params' - ].includes(expectedHeaderRequestParams), - ); - }); - - it('invokes listDocumentsStream with error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.ListDocumentsRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.ListDocumentsRequest', - ['parent'], - ); - request.parent = defaultValue1; - const defaultValue2 = getTypeDefaultValue( - '.google.firestore.v1beta1.ListDocumentsRequest', - ['collectionId'], - ); - request.collectionId = defaultValue2; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}&collection_id=${defaultValue2 ?? ''}`; - const expectedError = new Error('expected'); - client.descriptors.page.listDocuments.createStream = - stubPageStreamingCall(undefined, expectedError); - const stream = client.listDocumentsStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.firestore.v1beta1.Document[] = []; - stream.on( - 'data', - (response: protos.google.firestore.v1beta1.Document) => { - responses.push(response); - }, - ); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - await assert.rejects(promise, expectedError); - assert( - (client.descriptors.page.listDocuments.createStream as SinonStub) - .getCall(0) - .calledWith(client.innerApiCalls.listDocuments, request), - ); - assert( - (client.descriptors.page.listDocuments.createStream as SinonStub) - .getCall(0) - .args[2].otherArgs.headers[ - 'x-goog-request-params' - ].includes(expectedHeaderRequestParams), - ); - }); - - it('uses async iteration with listDocuments without error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.ListDocumentsRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.ListDocumentsRequest', - ['parent'], - ); - request.parent = defaultValue1; - const defaultValue2 = getTypeDefaultValue( - '.google.firestore.v1beta1.ListDocumentsRequest', - ['collectionId'], - ); - request.collectionId = defaultValue2; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}&collection_id=${defaultValue2 ?? ''}`; - const expectedResponse = [ - generateSampleMessage(new protos.google.firestore.v1beta1.Document()), - generateSampleMessage(new protos.google.firestore.v1beta1.Document()), - generateSampleMessage(new protos.google.firestore.v1beta1.Document()), - ]; - client.descriptors.page.listDocuments.asyncIterate = - stubAsyncIterationCall(expectedResponse); - const responses: protos.google.firestore.v1beta1.IDocument[] = []; - const iterable = client.listDocumentsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); - } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - ( - client.descriptors.page.listDocuments.asyncIterate as SinonStub - ).getCall(0).args[1], - request, - ); - assert( - (client.descriptors.page.listDocuments.asyncIterate as SinonStub) - .getCall(0) - .args[2].otherArgs.headers[ - 'x-goog-request-params' - ].includes(expectedHeaderRequestParams), - ); - }); - - it('uses async iteration with listDocuments with error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.ListDocumentsRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.ListDocumentsRequest', - ['parent'], - ); - request.parent = defaultValue1; - const defaultValue2 = getTypeDefaultValue( - '.google.firestore.v1beta1.ListDocumentsRequest', - ['collectionId'], - ); - request.collectionId = defaultValue2; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}&collection_id=${defaultValue2 ?? ''}`; - const expectedError = new Error('expected'); - client.descriptors.page.listDocuments.asyncIterate = - stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listDocumentsAsync(request); - await assert.rejects(async () => { - const responses: protos.google.firestore.v1beta1.IDocument[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - ( - client.descriptors.page.listDocuments.asyncIterate as SinonStub - ).getCall(0).args[1], - request, - ); - assert( - (client.descriptors.page.listDocuments.asyncIterate as SinonStub) - .getCall(0) - .args[2].otherArgs.headers[ - 'x-goog-request-params' - ].includes(expectedHeaderRequestParams), - ); - }); - }); - - describe('partitionQuery', () => { - it('invokes partitionQuery without error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.PartitionQueryRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.PartitionQueryRequest', - ['parent'], - ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; - const expectedResponse = [ - generateSampleMessage(new protos.google.firestore.v1beta1.Cursor()), - generateSampleMessage(new protos.google.firestore.v1beta1.Cursor()), - generateSampleMessage(new protos.google.firestore.v1beta1.Cursor()), - ]; - client.innerApiCalls.partitionQuery = stubSimpleCall(expectedResponse); - const [response] = await client.partitionQuery(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = ( - client.innerApiCalls.partitionQuery as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.partitionQuery as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes partitionQuery without error using callback', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.PartitionQueryRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.PartitionQueryRequest', - ['parent'], - ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; - const expectedResponse = [ - generateSampleMessage(new protos.google.firestore.v1beta1.Cursor()), - generateSampleMessage(new protos.google.firestore.v1beta1.Cursor()), - generateSampleMessage(new protos.google.firestore.v1beta1.Cursor()), - ]; - client.innerApiCalls.partitionQuery = - stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.partitionQuery( - request, - ( - err?: Error | null, - result?: protos.google.firestore.v1beta1.ICursor[] | null, - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }, - ); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = ( - client.innerApiCalls.partitionQuery as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.partitionQuery as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes partitionQuery with error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.PartitionQueryRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.PartitionQueryRequest', - ['parent'], - ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; - const expectedError = new Error('expected'); - client.innerApiCalls.partitionQuery = stubSimpleCall( - undefined, - expectedError, - ); - await assert.rejects(client.partitionQuery(request), expectedError); - const actualRequest = ( - client.innerApiCalls.partitionQuery as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.partitionQuery as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes partitionQueryStream without error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.PartitionQueryRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.PartitionQueryRequest', - ['parent'], - ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; - const expectedResponse = [ - generateSampleMessage(new protos.google.firestore.v1beta1.Cursor()), - generateSampleMessage(new protos.google.firestore.v1beta1.Cursor()), - generateSampleMessage(new protos.google.firestore.v1beta1.Cursor()), - ]; - client.descriptors.page.partitionQuery.createStream = - stubPageStreamingCall(expectedResponse); - const stream = client.partitionQueryStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.firestore.v1beta1.Cursor[] = []; - stream.on( - 'data', - (response: protos.google.firestore.v1beta1.Cursor) => { - responses.push(response); - }, - ); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - const responses = await promise; - assert.deepStrictEqual(responses, expectedResponse); - assert( - (client.descriptors.page.partitionQuery.createStream as SinonStub) - .getCall(0) - .calledWith(client.innerApiCalls.partitionQuery, request), - ); - assert( - (client.descriptors.page.partitionQuery.createStream as SinonStub) - .getCall(0) - .args[2].otherArgs.headers[ - 'x-goog-request-params' - ].includes(expectedHeaderRequestParams), - ); - }); - - it('invokes partitionQueryStream with error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.PartitionQueryRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.PartitionQueryRequest', - ['parent'], - ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; - const expectedError = new Error('expected'); - client.descriptors.page.partitionQuery.createStream = - stubPageStreamingCall(undefined, expectedError); - const stream = client.partitionQueryStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.firestore.v1beta1.Cursor[] = []; - stream.on( - 'data', - (response: protos.google.firestore.v1beta1.Cursor) => { - responses.push(response); - }, - ); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - await assert.rejects(promise, expectedError); - assert( - (client.descriptors.page.partitionQuery.createStream as SinonStub) - .getCall(0) - .calledWith(client.innerApiCalls.partitionQuery, request), - ); - assert( - (client.descriptors.page.partitionQuery.createStream as SinonStub) - .getCall(0) - .args[2].otherArgs.headers[ - 'x-goog-request-params' - ].includes(expectedHeaderRequestParams), - ); - }); - - it('uses async iteration with partitionQuery without error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.PartitionQueryRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.PartitionQueryRequest', - ['parent'], - ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; - const expectedResponse = [ - generateSampleMessage(new protos.google.firestore.v1beta1.Cursor()), - generateSampleMessage(new protos.google.firestore.v1beta1.Cursor()), - generateSampleMessage(new protos.google.firestore.v1beta1.Cursor()), - ]; - client.descriptors.page.partitionQuery.asyncIterate = - stubAsyncIterationCall(expectedResponse); - const responses: protos.google.firestore.v1beta1.ICursor[] = []; - const iterable = client.partitionQueryAsync(request); - for await (const resource of iterable) { - responses.push(resource!); - } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - ( - client.descriptors.page.partitionQuery.asyncIterate as SinonStub - ).getCall(0).args[1], - request, - ); - assert( - (client.descriptors.page.partitionQuery.asyncIterate as SinonStub) - .getCall(0) - .args[2].otherArgs.headers[ - 'x-goog-request-params' - ].includes(expectedHeaderRequestParams), - ); - }); - - it('uses async iteration with partitionQuery with error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.PartitionQueryRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.PartitionQueryRequest', - ['parent'], - ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; - const expectedError = new Error('expected'); - client.descriptors.page.partitionQuery.asyncIterate = - stubAsyncIterationCall(undefined, expectedError); - const iterable = client.partitionQueryAsync(request); - await assert.rejects(async () => { - const responses: protos.google.firestore.v1beta1.ICursor[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - ( - client.descriptors.page.partitionQuery.asyncIterate as SinonStub - ).getCall(0).args[1], - request, - ); - assert( - (client.descriptors.page.partitionQuery.asyncIterate as SinonStub) - .getCall(0) - .args[2].otherArgs.headers[ - 'x-goog-request-params' - ].includes(expectedHeaderRequestParams), - ); - }); - }); - - describe('listCollectionIds', () => { - it('invokes listCollectionIds without error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.ListCollectionIdsRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.ListCollectionIdsRequest', - ['parent'], - ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; - const expectedResponse = [new String(), new String(), new String()]; - client.innerApiCalls.listCollectionIds = stubSimpleCall(expectedResponse); - const [response] = await client.listCollectionIds(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = ( - client.innerApiCalls.listCollectionIds as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.listCollectionIds as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listCollectionIds without error using callback', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.ListCollectionIdsRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.ListCollectionIdsRequest', - ['parent'], - ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; - const expectedResponse = [new String(), new String(), new String()]; - client.innerApiCalls.listCollectionIds = - stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.listCollectionIds( - request, - (err?: Error | null, result?: string[] | null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }, - ); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = ( - client.innerApiCalls.listCollectionIds as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.listCollectionIds as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listCollectionIds with error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.ListCollectionIdsRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.ListCollectionIdsRequest', - ['parent'], - ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; - const expectedError = new Error('expected'); - client.innerApiCalls.listCollectionIds = stubSimpleCall( - undefined, - expectedError, - ); - await assert.rejects(client.listCollectionIds(request), expectedError); - const actualRequest = ( - client.innerApiCalls.listCollectionIds as SinonStub - ).getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = ( - client.innerApiCalls.listCollectionIds as SinonStub - ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listCollectionIdsStream without error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.ListCollectionIdsRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.ListCollectionIdsRequest', - ['parent'], - ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; - const expectedResponse = [new String(), new String(), new String()]; - client.descriptors.page.listCollectionIds.createStream = - stubPageStreamingCall(expectedResponse); - const stream = client.listCollectionIdsStream(request); - const promise = new Promise((resolve, reject) => { - const responses: string[] = []; - stream.on('data', (response: string) => { - responses.push(response); - }); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - const responses = await promise; - assert.deepStrictEqual(responses, expectedResponse); - assert( - (client.descriptors.page.listCollectionIds.createStream as SinonStub) - .getCall(0) - .calledWith(client.innerApiCalls.listCollectionIds, request), - ); - assert( - (client.descriptors.page.listCollectionIds.createStream as SinonStub) - .getCall(0) - .args[2].otherArgs.headers[ - 'x-goog-request-params' - ].includes(expectedHeaderRequestParams), - ); - }); - - it('invokes listCollectionIdsStream with error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.ListCollectionIdsRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.ListCollectionIdsRequest', - ['parent'], - ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; - const expectedError = new Error('expected'); - client.descriptors.page.listCollectionIds.createStream = - stubPageStreamingCall(undefined, expectedError); - const stream = client.listCollectionIdsStream(request); - const promise = new Promise((resolve, reject) => { - const responses: string[] = []; - stream.on('data', (response: string) => { - responses.push(response); - }); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - await assert.rejects(promise, expectedError); - assert( - (client.descriptors.page.listCollectionIds.createStream as SinonStub) - .getCall(0) - .calledWith(client.innerApiCalls.listCollectionIds, request), - ); - assert( - (client.descriptors.page.listCollectionIds.createStream as SinonStub) - .getCall(0) - .args[2].otherArgs.headers[ - 'x-goog-request-params' - ].includes(expectedHeaderRequestParams), - ); - }); - - it('uses async iteration with listCollectionIds without error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.ListCollectionIdsRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.ListCollectionIdsRequest', - ['parent'], - ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; - const expectedResponse = [new String(), new String(), new String()]; - client.descriptors.page.listCollectionIds.asyncIterate = - stubAsyncIterationCall(expectedResponse); - const responses: string[] = []; - const iterable = client.listCollectionIdsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); - } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - ( - client.descriptors.page.listCollectionIds.asyncIterate as SinonStub - ).getCall(0).args[1], - request, - ); - assert( - (client.descriptors.page.listCollectionIds.asyncIterate as SinonStub) - .getCall(0) - .args[2].otherArgs.headers[ - 'x-goog-request-params' - ].includes(expectedHeaderRequestParams), - ); - }); - - it('uses async iteration with listCollectionIds with error', async () => { - const client = new firestoreModule.v1beta1.FirestoreClient({ - credentials: { client_email: 'bogus', private_key: 'bogus' }, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.firestore.v1beta1.ListCollectionIdsRequest(), - ); - const defaultValue1 = getTypeDefaultValue( - '.google.firestore.v1beta1.ListCollectionIdsRequest', - ['parent'], - ); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; - const expectedError = new Error('expected'); - client.descriptors.page.listCollectionIds.asyncIterate = - stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listCollectionIdsAsync(request); - await assert.rejects(async () => { - const responses: string[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - ( - client.descriptors.page.listCollectionIds.asyncIterate as SinonStub - ).getCall(0).args[1], - request, - ); - assert( - (client.descriptors.page.listCollectionIds.asyncIterate as SinonStub) - .getCall(0) - .args[2].otherArgs.headers[ - 'x-goog-request-params' - ].includes(expectedHeaderRequestParams), - ); - }); - }); -});