drive.proto revision 58537e28ecd584eab876aee8be7156509866d23a
1// Copyright (c) 2012 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 representing Drive files and directories, 6// and serializing them for the resource metadata database. 7 8syntax = "proto2"; 9 10option optimize_for = LITE_RUNTIME; 11 12package drive; 13 14// Represents base::PlatformFileInfo. 15message PlatformFileInfoProto { 16 optional int64 size = 1; 17 optional bool is_directory = 2; 18 optional bool is_symbolic_link = 3; 19 optional int64 last_modified = 4; 20 optional int64 last_accessed = 5; 21 optional int64 creation_time = 6; 22} 23 24// File specific info, which is a part of ResourceEntry. 25message FileSpecificInfo { 26 // This URL points to a thumbnail image. The thumbnail URL is not permanent 27 // as it's not protected by authentication. See crbug.com/127697 for how 28 // stale thumbnail URLs are handled. 29 optional string thumbnail_url = 1; 30 31 // This URL is used for opening hosted documents with Google Drive's web 32 // interface. 33 optional string alternate_url = 2; 34 35 // Content mime type like "text/plain". 36 optional string content_mime_type = 3; 37 38 // The MD5 of contents of a regular file. Hosted files don't have MD5. 39 optional string md5 = 4; 40 41 // File extension, including the dot, used for hosted documents 42 // (ex. ".gsheet" for hosted spreadsheets). 43 optional string document_extension = 5; 44 45 // True if the file is a hosted document (i.e. document hosted on 46 // drive.google.com such as documents, spreadsheets, and presentations). 47 optional bool is_hosted_document = 6; 48 49 // The argument with ID 7 had been used, but got deleted. Next ID to use: 8. 50} 51 52// Directory specific info, which is a part of ResourceEntry. 53message DirectorySpecificInfo { 54 // The changestamp of this directory. This value can be larger than the 55 // changestamp of ResourceMetadata, if this directory was 56 // "fast-fetched". See crbug.com/178348 for details about the "fast-fetch" 57 // feature. 58 optional int64 changestamp = 1; 59} 60 61// Represents metadata of a resource (file or directory) on Drive. 62message ResourceEntry { 63 optional PlatformFileInfoProto file_info = 1; 64 // Base name of the entry. The base name is used for file paths. Usually 65 // identical to |title|, but some extra number is inserted if multiple 66 // entries with the same title exist in the same directory, to ensure that 67 // file paths are unique. For instance, if two files titled "foo.jpg" exist 68 // in the same directory, which is allowed on drive.google.com, one of them 69 // will have a base name of "foo (2).jpg". 70 optional string base_name = 2; 71 72 // Title of the entry. See the comment at |base_name|. 73 optional string title = 3; 74 75 // Resource ID of the entry. Guaranteed to be unique. 76 optional string resource_id = 4; 77 78 // Local ID of the parent entry. 79 optional string parent_local_id = 7; 80 81 // This field is used for processing the change list from the 82 // server. Deleted entries won't be stored in ResourceMetadata. 83 optional bool deleted = 11; 84 85 // True if the entry is labeled with "shared-with-me". 86 optional bool shared_with_me = 14; 87 88 // File specific information, such as MD5. 89 optional FileSpecificInfo file_specific_info = 9; 90 91 // Directory specific information, such as changestamp. 92 optional DirectorySpecificInfo directory_specific_info = 13; 93} 94 95// Container for the header part of ResourceMetadata. 96message ResourceMetadataHeader { 97 // Monotonically increasing version number, which is changed when 98 // incompatible change is made to the DB format. kDBVersion in 99 // drive_resource_metadata_storage.h defines the current version. 100 optional int32 version = 1; 101 optional int64 largest_changestamp = 2; 102} 103 104// Message to store information of an existing cache file. 105message FileCacheEntry { 106 // MD5 of the cache file. 107 optional string md5 = 1; 108 109 // True if the file is present locally. 110 optional bool is_present = 2; 111 112 // True if the file is pinned (i.e. available offline). 113 optional bool is_pinned = 3; 114 115 // True if the file is dirty (i.e. modified locally). 116 optional bool is_dirty = 4; 117 118 // When adding a new state, be sure to update TestFileCacheState and test 119 // functions defined in test_util.cc. 120} 121