Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / google_apis / gcm / protocol / android_checkin.proto
bloba4520513888cf33954b850ff98b2af07dbcc07f7
1 // Copyright 2014 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 // Logging information for Android "checkin" events (automatic, periodic
6 // requests made by Android devices to the server).
8 syntax = "proto2";
10 option optimize_for = LITE_RUNTIME;
11 option retain_unknown_fields = true;
12 package checkin_proto;
14 // Build characteristics unique to the Chrome browser, and Chrome OS
15 message ChromeBuildProto {
16   enum Platform {
17     PLATFORM_WIN = 1;
18     PLATFORM_MAC = 2;
19     PLATFORM_LINUX = 3;
20     PLATFORM_CROS = 4;
21     PLATFORM_IOS = 5;
22     // Just a placeholder. Likely don't need it due to the presence of the
23     // Android GCM on phone/tablet devices.
24     PLATFORM_ANDROID = 6;
25   }
27   enum Channel {
28     CHANNEL_STABLE = 1;
29     CHANNEL_BETA = 2;
30     CHANNEL_DEV = 3;
31     CHANNEL_CANARY = 4;
32     CHANNEL_UNKNOWN = 5;  // for tip of tree or custom builds
33   }
35   // The platform of the device.
36   optional Platform platform = 1;
38   // The Chrome instance's version.
39   optional string chrome_version = 2;
41   // The Channel (build type) of Chrome.
42   optional Channel channel = 3;
45 // Information sent by the device in a "checkin" request.
46 message AndroidCheckinProto {
47   // Miliseconds since the Unix epoch of the device's last successful checkin.
48   optional int64 last_checkin_msec = 2;
50   // The current MCC+MNC of the mobile device's current cell.
51   optional string cell_operator = 6;
53   // The MCC+MNC of the SIM card (different from operator if the
54   // device is roaming, for instance).
55   optional string sim_operator = 7;
57   // The device's current roaming state (reported starting in eclair builds).
58   // Currently one of "{,not}mobile-{,not}roaming", if it is present at all.
59   optional string roaming = 8;
61   // For devices supporting multiple user profiles (which may be
62   // supported starting in jellybean), the ordinal number of the
63   // profile that is checking in.  This is 0 for the primary profile
64   // (which can't be changed without wiping the device), and 1,2,3,...
65   // for additional profiles (which can be added and deleted freely).
66   optional int32 user_number = 9;
68   // Class of device.  Indicates the type of build proto
69   // (IosBuildProto/ChromeBuildProto/AndroidBuildProto)
70   // That is included in this proto
71   optional DeviceType type = 12 [default = DEVICE_ANDROID_OS];
73   // For devices running MCS on Chrome, build-specific characteristics
74   // of the browser.  There are no hardware aspects (except for ChromeOS).
75   // This will only be populated for Chrome builds/ChromeOS devices
76   optional checkin_proto.ChromeBuildProto chrome_build = 13;
78   // Note: Some of the Android specific optional fields were skipped to limit
79   // the protobuf definition.
80   // Next 14
83 // enum values correspond to the type of device.
84 // Used in the AndroidCheckinProto and Device proto.
85 enum DeviceType {
86   // Android Device
87   DEVICE_ANDROID_OS = 1;
89   // Apple IOS device
90   DEVICE_IOS_OS = 2;
92   // Chrome browser - Not Chrome OS.  No hardware records.
93   DEVICE_CHROME_BROWSER = 3;
95   // Chrome OS
96   DEVICE_CHROME_OS = 4;