| 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. |
| //////////////////////////////////////////////////////////////////////////////// |
| |
| // The state of a single experiment on a device. |
| message Experiment { |
| // The id of the experiment as defined by the Experiment framework. |
| int64 experiment_id = 1; |
| // The id of the experiment arm as defined by the Experiment framework. |
| int64 arm_id = 2; |
| } |
| |
| // A SystemProfile describes the client system on which an Observation is |
| // collected. |
| message SystemProfile { |
| reserved 3; |
| |
| enum OS { |
| UNKNOWN_OS = 0; |
| FUCHSIA = 1; |
| LINUX = 2; |
| } |
| |
| enum ARCH { |
| UNKNOWN_ARCH = 0; |
| X86_64 = 1; |
| ARM_64 = 2; |
| } |
| |
| 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 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; |
| |
| // This is a string representation of the current realm. Realm is a software- |
| // distribution identifier that is more general than |channel|. A realm |
| // corresponds to one or more channels. The values are system-specific. For |
| // example on Fuchsia the "Dogfood" realm might contain the "fishood_release", |
| // "teamfood_release", and "dogfood_release" channels. |
| // |
| // 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 realm = 10; |
| |
| // Contains all the experiments the device has a notion of and the experiment |
| // state the device belongs to. |
| repeated Experiment experiments = 7; |
| |
| // We used to have a field called |build_level|. |
| reserved 6; |
| reserved "build_level"; |
| } |