mirror of
https://github.com/googleapis/googleapis.git
synced 2026-08-14 12:42:59 +02:00
120 lines
3.7 KiB
Protocol Buffer
120 lines
3.7 KiB
Protocol Buffer
// Copyright 2020 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.
|
|
//
|
|
|
|
// This file defines the format of Firestore bundle file/stream. It is not a part of the
|
|
// Firestore API, only a specification used by Server and Client SDK to write and read
|
|
// bundles.
|
|
|
|
syntax = "proto3";
|
|
|
|
package google.firestore.bundle;
|
|
|
|
import "google/firestore/v1/document.proto";
|
|
import "google/firestore/v1/query.proto";
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
option csharp_namespace = "Firestore.Bundle";
|
|
option go_package = "cloud.google.com/go/firestore/bundle/bundlepb;bundlepb";
|
|
option java_multiple_files = true;
|
|
option java_outer_classname = "BundleProto";
|
|
option java_package = "com.google.firestore.bundle";
|
|
option objc_class_prefix = "FSTPB";
|
|
option php_namespace = "Firestore\\Bundle";
|
|
|
|
// Encodes a query saved in the bundle.
|
|
message BundledQuery {
|
|
// The parent resource name.
|
|
string parent = 1;
|
|
|
|
// The query to run.
|
|
oneof query_type {
|
|
// A structured query.
|
|
google.firestore.v1.StructuredQuery structured_query = 2;
|
|
}
|
|
|
|
// If the query is a limit query, should the limit be applied to the beginning or
|
|
// the end of results.
|
|
enum LimitType {
|
|
FIRST = 0;
|
|
LAST = 1;
|
|
}
|
|
LimitType limit_type = 3;
|
|
}
|
|
|
|
// A Query associated with a name, created as part of the bundle file, and can be read
|
|
// by client SDKs once the bundle containing them is loaded.
|
|
message NamedQuery {
|
|
// Name of the query, such that client can use the name to load this query
|
|
// from bundle, and resume from when the query results are materialized
|
|
// into this bundle.
|
|
string name = 1;
|
|
|
|
// The query saved in the bundle.
|
|
BundledQuery bundled_query = 2;
|
|
|
|
// The read time of the query, when it is used to build the bundle. This is useful to
|
|
// resume the query from the bundle, once it is loaded by client SDKs.
|
|
google.protobuf.Timestamp read_time = 3;
|
|
}
|
|
|
|
// Metadata describing a Firestore document saved in the bundle.
|
|
message BundledDocumentMetadata {
|
|
// The document key of a bundled document.
|
|
string name = 1;
|
|
|
|
// The snapshot version of the document data bundled.
|
|
google.protobuf.Timestamp read_time = 2;
|
|
|
|
// Whether the document exists.
|
|
bool exists = 3;
|
|
|
|
// The names of the queries in this bundle that this document matches to.
|
|
repeated string queries = 4;
|
|
}
|
|
|
|
// Metadata describing the bundle file/stream.
|
|
message BundleMetadata {
|
|
// The ID of the bundle.
|
|
string id = 1;
|
|
|
|
// Time at which the documents snapshot is taken for this bundle.
|
|
google.protobuf.Timestamp create_time = 2;
|
|
|
|
// The schema version of the bundle.
|
|
uint32 version = 3;
|
|
|
|
// The number of documents in the bundle.
|
|
uint32 total_documents = 4;
|
|
|
|
// The size of the bundle in bytes, excluding this `BundleMetadata`.
|
|
uint64 total_bytes = 5;
|
|
}
|
|
|
|
// A Firestore bundle is a length-prefixed stream of JSON representations of
|
|
// `BundleElement`.
|
|
// Only one `BundleMetadata` is expected, and it should be the first element.
|
|
// The named queries follow after `metadata`. Every `document_metadata` is
|
|
// immediately followed by a `document`.
|
|
message BundleElement {
|
|
oneof element_type {
|
|
BundleMetadata metadata = 1;
|
|
|
|
NamedQuery named_query = 2;
|
|
|
|
BundledDocumentMetadata document_metadata = 3;
|
|
|
|
google.firestore.v1.Document document = 4;
|
|
}
|
|
}
|