| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| // |
| // Protocol buffer definitions for Drive backend of Syncable FileSystem. |
| |
| syntax = "proto2"; |
| |
| option optimize_for = LITE_RUNTIME; |
| |
| package sync_file_system.drive_backend; |
| |
| enum FileKind { |
| FILE_KIND_UNSUPPORTED = 0; |
| FILE_KIND_FILE = 1; |
| FILE_KIND_FOLDER = 2; |
| } |
| |
| message ServiceMetadata { |
| optional int64 largest_change_id = 1; |
| optional int64 sync_root_tracker_id = 2; |
| |
| // The sequence number of FileTrackers. Must be positive. |
| optional int64 next_tracker_id = 3; |
| } |
| |
| // Holds details of file/folder metadata. |
| message FileDetails { |
| repeated string parent_folder_ids = 1; |
| |
| optional string title = 2; |
| optional FileKind file_kind = 3; |
| optional string md5 = 4; |
| optional string etag = 5; |
| |
| // Creation time and modification time of the resource. |
| // Serialized by Time::ToInternalValue. |
| optional int64 creation_time = 6; |
| optional int64 modification_time = 7; |
| |
| optional bool deleted = 8; |
| optional int64 change_id = 9; |
| } |
| |
| // Represents a server-side file. |
| message FileMetadata { |
| // File ID of the remote file/folder which the FileMetadata represents. |
| required string file_id = 1; |
| |
| optional FileDetails details = 2; |
| } |
| |
| // Represents synced local file. |
| message FileTracker { |
| // A unique sequence number to identify the tracker. Must be positive. |
| required int64 tracker_id = 1; |
| |
| // Points the parent tracker in the tracker tree. 0 if there's no parent. |
| required int64 parent_tracker_id = 2; |
| |
| required string file_id = 3; |
| |
| optional string app_id = 4; |
| optional bool is_app_root = 5; |
| |
| optional FileDetails synced_details = 6; |
| |
| // True if the file is changed since the last update for this file. |
| optional bool dirty = 7; |
| |
| // True if the FileTracker is active. |
| // Remote file modification should only be applied to active trackers. |
| // Active FileTracker must have a unique title under its parent. |
| optional bool active = 8; |
| |
| // Valid only for folders. |
| // True if the folder contents have not yet been fetched. |
| optional bool needs_folder_listing = 9; |
| } |