| // Copyright 2023 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| syntax = "proto2"; |
| |
| option optimize_for = LITE_RUNTIME; |
| |
| package apps.proto; |
| |
| // This file is a mirror of the proto file maintained in the server code base at |
| // go/almanac-api-client-context-proto. Changes should be made by updating the |
| // server code base and then copying the result to Chromium. |
| |
| // Context about the client device making this request. |
| message ClientDeviceContext { |
| // The channel that this device is enrolled in. |
| enum Channel { |
| // Default for deserialization when an unexpected value is encountered. |
| // Indicates to the client that the server has a new channel and needs |
| // the proto file updated. |
| CHANNEL_UNKNOWN = 0; |
| |
| // Canary channel. |
| CHANNEL_CANARY = 2; |
| |
| // Developer channel. |
| CHANNEL_DEV = 3; |
| |
| // Beta channel. |
| CHANNEL_BETA = 4; |
| |
| // Stable channel. |
| CHANNEL_STABLE = 5; |
| |
| // Default channel for builds that don't define a channel e.g. all builds |
| // except official signed builds. |
| CHANNEL_DEFAULT = 6; |
| |
| // No longer used. |
| reserved "CHANNEL_INTERNAL"; |
| reserved 1; |
| } |
| |
| // Version info about the OS, Browser and other platforms. |
| message Versions { |
| // No longer used. Need to figure out to properly deprecate this without |
| // causing issues with one platform. |
| optional string chrome_os_platform = 1; |
| optional string chrome_lacros = 3; |
| |
| // Required. Chrome version for Ash on the device. |
| optional string chrome_ash = 2; |
| |
| // Optional. Arc SDK version if enabled and present. Otherwise, 0 or unset. |
| optional int32 arc_sdk = 4; |
| |
| // Optional. Steam client version if present. |
| optional string steam_client = 5; |
| } |
| |
| // The board identifier for the device sending the request. |
| optional string board = 1; |
| |
| // The model identifier for the device sending the request. |
| optional string model = 2; |
| |
| // The channel the device is allocated to. |
| optional Channel channel = 3; |
| |
| // The ChromeOS version information. |
| optional Versions versions = 4; |
| |
| // The HWID identifier for the device sending the request. |
| optional string hardware_id = 5; |
| |
| // The custom-label tag for the device sending the request, used to |
| // distinguish between variations of a device which have different branding |
| // but the same hardware. Only set for devices with custom-label variants. |
| optional string custom_label_tag = 7; |
| |
| // Instructs the server to bypass any response cache is configured on the |
| // endpoint and always return a fresh response. This is useful for debugging. |
| optional bool bypass_response_cache = 8; |
| } |
| |
| // Context about the user of the client device making this request. |
| message ClientUserContext { |
| // The type of the User account making this request. |
| enum UserType { |
| // Default for deserialization when an unexpected value is encountered. |
| // Indicates to the client that the server has a new user type and needs |
| // the proto file updated. |
| USERTYPE_UNKNOWN = 0; |
| |
| // Normal consumer. |
| USERTYPE_UNMANAGED = 1; |
| |
| // Enterprise, education, etc. |
| USERTYPE_MANAGED = 2; |
| |
| // A child account that has restricted access to adult content. |
| USERTYPE_CHILD = 3; |
| |
| // A guest account on the device. |
| USERTYPE_GUEST = 4; |
| |
| // A managed user who has a @google.com account. |
| USERTYPE_GOOGLE = 5; |
| |
| // A managed guest account on the device. |
| USERTYPE_MANAGED_GUEST = 6; |
| } |
| |
| // The language-country identifier for the user in language in |
| // "language-COUNTRY" format, and must match one of the valid Google |
| // recognised codes. |
| // Note: this should ideally be the user's preferred language, if absent |
| // use the language specified by the UI. The server will attempt to honour |
| // this explicitly, but if it cannot it wil fall-back onto the next best |
| // available or en-US in the worst.case. |
| optional string language = 1; |
| |
| // The type of user account making this request. |
| optional UserType user_type = 2; |
| |
| // Flags to enable optional/experimental features in the Almanac server. |
| repeated int32 flag_ids = 3; |
| } |
| |
| // Wrapper message for ClientDeviceContext and ClientUserContext. |
| message ClientContext { |
| // Context about the client device making this request. |
| optional ClientDeviceContext device_context = 1; |
| |
| // Context about the user of the client device making this request. |
| optional ClientUserContext user_context = 2; |
| } |