| // Copyright (c) 2012 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 serializing Drive files and directories. |
| |
| syntax = "proto2"; |
| |
| option optimize_for = LITE_RUNTIME; |
| |
| package gdata; |
| |
| // Represents base::PlatformFileInfo. |
| message PlatformFileInfoProto { |
| optional int64 size = 1; |
| optional bool is_directory = 2; |
| optional bool is_symbolic_link = 3; |
| optional int64 last_modified = 4; |
| optional int64 last_accessed = 5; |
| optional int64 creation_time = 6; |
| } |
| |
| // File specific info, which is a part of DriveEntryProto. |
| message DriveFileSpecificInfo { |
| // This URL points to a thumbnail image. The thumbnail URL is not permanent |
| // as it's not protected by authentication. See crbug.com/127697 for how |
| // stale thumbnail URLs are handled. |
| optional string thumbnail_url = 1; |
| |
| // This URL is used for opening hosted documents with Google Docs's web |
| // interface. |
| optional string alternate_url = 2; |
| |
| // Content mime type like "text/plain". |
| optional string content_mime_type = 3; |
| |
| // The MD5 of contents of a regular file. |
| optional string file_md5 = 4; |
| |
| // File extension, including the dot, used for hosted documents |
| // (ex. ".gsheet" for hosted spreadsheet documents). |
| optional string document_extension = 5; |
| |
| // True if the file is a hosted document. |
| optional bool is_hosted_document = 6; |
| } |
| |
| // Represents DriveEntry, DriveFile, and DriveDirectory without children. |
| message DriveEntryProto { |
| optional PlatformFileInfoProto file_info = 1; |
| optional string base_name = 2; |
| optional string title = 3; |
| optional string resource_id = 4; |
| optional string edit_url = 5; |
| optional string content_url = 6; |
| optional string parent_resource_id = 7; |
| // For a file, this is "resumable-edit-media" URL, used to update an |
| // existing file. For a directory, this is "resumable-create-media" URL, |
| // used to upload a new file to that directory. See |
| // https://developers.google.com/google-apps/documents-list/ |
| optional string upload_url = 8; |
| // This stores a DriveEntryKind defined in drive_entry_kinds.h. |
| optional int32 kind = 12; |
| // This field is used for processing the feeds from the server. Deleted |
| // entries won't be stored in the metadata storage. |
| optional bool deleted = 11; |
| |
| // File specific information, such as MD5. |
| optional DriveFileSpecificInfo file_specific_info = 9; |
| } |
| |
| // Represents DriveDirectory. This message type is defined to keep children |
| // separate from DriveEntryProto. This design allows us to get the metadata |
| // of a directory efficiently as DriveEntryProto, without carrying the |
| // metadata of children. |
| // |
| // TODO(satorux): With the new metadata storage system, we plan to store |
| // children as pairs of base name and resource ID. We should remove this |
| // message type once we get there. |
| message DriveDirectoryProto { |
| optional DriveEntryProto drive_entry = 1; |
| repeated DriveDirectoryProto child_directories = 7; |
| repeated DriveEntryProto child_files = 9; |
| } |
| |
| // Container for the root directory and the largest changestamp. |
| // TODO(satorux): Remove this: crbug.com/137862 |
| message DriveRootDirectoryProto { |
| optional DriveDirectoryProto drive_directory = 1; |
| optional int64 largest_changestamp = 4; |
| // Monotonically increasing version number, which is changed when |
| // incompatible change is made in the proto file. |
| // kProtoVersion in drive_files.h defines the current version. |
| optional int32 version = 3; |
| } |
| |
| // Message to store information of an existing cache file. |
| // Cache files are stored in 'tmp' or 'persistent' directory under the |
| // root cache directory. See DriveCache::GetCacheRootPath(). |
| message DriveCacheEntry { |
| // MD5 of the cache file. "local" if the file is locally modified. |
| optional string md5 = 1; |
| |
| // True if the file is present locally. |
| optional bool is_present = 2; |
| |
| // True if the file is pinned (i.e. available offline). |
| optional bool is_pinned = 3; |
| |
| // True if the file is dirty (i.e. modified locally). |
| optional bool is_dirty = 4; |
| |
| // True if the file is a mounted archive file. |
| optional bool is_mounted = 5; |
| |
| // True if the file is in the persistent directory. |
| optional bool is_persistent = 6; |
| |
| // When adding a new state, be sure to update TestDriveCacheState and test |
| // functions defined in drive_test_util.cc. |
| } |