blob: dde114182d29594a38d30e8303ccc92ac928de64 [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 client 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 Fuchsia product from which
// an observation is collected.
//
// During development, this is going to refer to layers of the Fuchsia cake
// such as "garnet", "zircon", "topaz", etc... In the future, we will use
// something related to what sort of device we are running on, such as
// "Acme Lightbulb X" or "Machine Corp. Laptop III".
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 (aka OS version) with a value that looks like
// "0.20200114.1.1".
string system_version = 8;
// This is a string representing the version of the app sending information.
// The use and format is application-specific. The main anticipated use of
// this field is for experiments and debugging. I.e. to figure out if an
// issue is version-specific or not.
//
// 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. It is an arbitrary
// string that depends on the system. For example on Fuchsia some possible
// values are "qa-daily" and "fishfood".
//
// 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";
}