• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2023 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//      http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14syntax = "proto3";
15
16package cobalt;
17
18option java_multiple_files = true;
19option java_package = "com.google.cobalt";
20
21////////////////////////////////////////////////////////////////////////////////
22// NOTE: This file is used by the Cobalt client and the Cobalt servers.
23// The source-of-truth of this file is located in Google's internsl code
24// repository, and the file is copied to Android where it is used by the Cobalt
25// client. Do not edit the copy of this file in this Android repo as those edits
26// will be overwritten when the file is next copied.
27////////////////////////////////////////////////////////////////////////////////
28
29// A SystemProfile describes the client system on which an Observation is
30// collected.
31message SystemProfile {
32  enum OS {
33    UNKNOWN_OS = 0;
34    FUCHSIA = 1;
35    LINUX = 2;
36    ANDROID = 3;
37  }
38
39  enum ARCH {
40    UNKNOWN_ARCH = 0;
41    X86_64 = 1;
42    ARM_64 = 2;
43    X86 = 3 [deprecated = true];
44    X86_32 = 4;
45    ARM_32 = 5;
46  }
47
48  enum BuildType {
49    UNKNOWN_TYPE = 0;
50    OTHER_TYPE = 1;
51    USER = 2;
52    USER_DEBUG = 3;
53    ENG = 4;
54  }
55
56  OS os = 1;
57  ARCH arch = 2;
58
59  // This is a string representing the board name of the device. If a board name
60  // cannot be determined, then this field will be 'unknown:<cpu signature>'.
61  string board_name = 4;
62
63  // This is a string representing the type of Fuchsia product from which
64  // an observation is collected.
65  //
66  // During development, this is going to refer to layers of the Fuchsia cake
67  // such as "garnet", "zircon", "topaz", etc... In the future, we will use
68  // something related to what sort of device we are running on, such as
69  // "Acme Lightbulb X" or "Machine Corp. Laptop III".
70  string product_name = 5;
71
72  // This is a string representing the version of the currently running system.
73  // The use of this field is system-specific. For example on Fuchsia it is the
74  // build version (aka OS version) with a value that looks like
75  // "0.20200114.1.1".
76  string system_version = 8;
77
78  // This is a string representing the version of the app sending information.
79  // The use and format is application-specific. The main anticipated use of
80  // this field is for experiments and debugging. I.e. to figure out if an
81  // issue is version-specific or not.
82  //
83  // The value '<unset>' means the system did not notify Cobalt of the current
84  // app_version.
85  //
86  // The value '<unknown>' means the system explicitly notified Cobalt it did
87  // not know the app_version.
88  string app_version = 14;
89
90  // This is a string representation of the current channel. It is an arbitrary
91  // string that depends on the system. For example on Fuchsia some possible
92  // values are "qa-daily" and "fishfood".
93  //
94  // The value '<unset>' means the system did not notify Cobalt of the current
95  // channel.
96  //
97  // The value '<unknown>' means the system explicitly notified Cobalt it did
98  // not know the channel.
99  string channel = 9;
100
101  // An enumerated representation of the current build type.
102  //
103  // The value `UNKNOWN_TYPE` means the system failed to supply a build type.
104  // The value `OTHER_TYPE` indicates the system supplied a value that did not
105  // match any of the enumerated values.
106  BuildType build_type = 11;
107
108  // A list of experiments that are active on the device sorted in increasing
109  // order and with no duplicates.
110  //
111  // This field should only contain experiments specified in the report
112  // definition associated with this system profile.
113  repeated int64 experiment_ids = 13;
114
115  reserved 3, 6, 7, 10, 12;
116  reserved "build_level", "experiments", "realm", "experiment_tokens";
117}
118