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