blob: 3dd94bdce277ebe420e571f5977f69ada3279b47 [file] [log] [blame]
syntax = "proto3";
package cobalt;
option java_multiple_files = true;
option java_package = "com.google.cobalt";
////////////////////////////////////////////////////////////////////////////////
// NOTE: This file is used by the Cobalt clients and the Cobalt servers.
// The source-of-truth of this file is located in Google's internal code
// repository, and the file is automatically copied to Cobalt's open source
// repo where it is used by the Cobalt client code. Do not edit the copy of this
// file in the open-source repo as those edits will be overwritten when the file
// is next copied.
////////////////////////////////////////////////////////////////////////////////
// A SystemProfile describes the client system on which an Observation is
// collected.
message SystemProfile {
enum OS {
UNKNOWN_OS = 0;
FUCHSIA = 1;
LINUX = 2;
ANDROID = 3;
}
enum ARCH {
UNKNOWN_ARCH = 0;
X86_64 = 1;
ARM_64 = 2;
X86 = 3 [deprecated = true];
X86_32 = 4;
ARM_32 = 5;
}
enum BuildType {
UNKNOWN_TYPE = 0;
OTHER_TYPE = 1;
USER = 2;
USER_DEBUG = 3;
ENG = 4;
}
OS os = 1;
ARCH arch = 2;
// This is a string representing the board name of the device. If a board name
// cannot be determined, then this field will be 'unknown:<cpu signature>'.
string board_name = 4;
// This is a string representing the type of product running on the device.
//
// The use of this field is system-specific. For example on Fuchsia it is the
// experience running on the device, e.g., "smart display" or "workstation".
string product_name = 5;
// This is a string representing the version of the currently running system.
//
// The use of this field is system-specific. For example, on Fuchsia, it is
// the build version from fuchsia.buildinfo/Provider, e.g., "0.20200114.1.1".
// On Android, it is from android.os.Build.VERSION.RELEASE.
string system_version = 8;
// This is a string representing the version of the app sending information.
// There can be multiple apps running on the system and updated separately
// from the system so sometimes it's more relevant to slice by the app version
// than the system version above.
//
// The use and format of this field is application-specific.
//
// The value '<unset>' means the system did not notify Cobalt of the current
// app_version.
//
// The value '<unknown>' means the system explicitly notified Cobalt it did
// not know the app_version.
string app_version = 14;
// This is a string representation of the current channel the device belongs
// to. It is common to segment a fleet of devices into disjoint populations.
//
// The use of this field is system-specific.
//
// The value '<unset>' means the system did not notify Cobalt of the current
// channel.
//
// The value '<unknown>' means the system explicitly notified Cobalt it did
// not know the channel.
string channel = 9;
// An enumerated representation of the current build type.
//
// The value `UNKNOWN_TYPE` means the system failed to supply a build type.
// The value `OTHER_TYPE` indicates the system supplied a value that did not
// match any of the enumerated values.
BuildType build_type = 11;
// A list of experiments that are active on the device sorted in increasing
// order and with no duplicates.
//
// This field should only contain experiments specified in the report
// definition associated with this system profile.
repeated int64 experiment_ids = 13
;
reserved 3, 6, 7, 10, 12;
reserved "build_level", "experiments", "realm", "experiment_tokens";
}