metadata_database.proto revision eb525c5499e34cc9c4b825d6d9e75bb07cc06ace
1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4// 5// Protocol buffer definitions for Drive backend of Syncable FileSystem. 6 7syntax = "proto2"; 8 9option optimize_for = LITE_RUNTIME; 10 11package sync_file_system.drive_backend; 12 13enum FileKind { 14 KIND_UNSUPPORTED = 0; 15 KIND_FILE = 1; 16 KIND_FOLDER = 2; 17} 18 19message ServiceMetadata { 20 optional int64 largest_change_id = 1 [default = 0]; 21 optional string sync_root_folder_id = 2; 22} 23 24message DriveFileMetadata { 25 // File ID of the remote file/folder which the DriveFileMetadata tracks. 26 required string file_id = 1; 27 required string parent_folder_id = 2; 28 29 optional string app_id = 3; 30 optional bool is_app_root = 4; 31 32 // Holds details of file/folder metadata. 33 message Details { 34 repeated string parent_folder_id = 1; 35 optional string title = 2; 36 optional FileKind kind = 3; 37 optional string md5 = 4; 38 optional string etag = 5; 39 40 // Creation time and modification time of the resource. 41 // Serialized by Time::ToInternalValue. 42 optional int64 creation_time = 6; 43 optional int64 modification_time = 7; 44 45 optional bool deleted = 8; 46 optional int64 change_id = 9; 47 } 48 49 // |synced_details| holds the file details snapshot when the file was 50 // fetched through remote-to-local update. 51 // This should contain same value as remote_details if |dirty| is false. 52 optional Details synced_details = 5; 53 54 // |remote_details| holds the latest file details that may not yet be 55 // applied to local metadata. 56 // This should be updated by each listed ChangeResource. 57 optional Details remote_details = 6; 58 59 // True if the file is changed since the last update for this file. 60 optional bool dirty = 7; 61 62 // True if the DriveFileMetadata is active. 63 // Remote file content update should only be applied for active 64 // DriveFileMetadata. 65 // Active DriveFileMetadata must have a unique title under its parent. 66 optional bool active = 8; 67 68 // Valid only for folders. 69 // True indicates the folder contents has not yet been fetched. 70 optional bool needs_folder_listing = 9; 71} 72