// 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; } enum TrackerKind { TRACKER_KIND_REGULAR = 0; TRACKER_KIND_APP_ROOT = 1; TRACKER_KIND_DISABLED_APP_ROOT = 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 missing = 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 TrackerKind tracker_kind = 5; // Available on an active tracker. // Represents detailed file information on last remote-to-local sync. 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; }