diff options
Diffstat (limited to 'chromium/components/policy/proto/chrome_device_policy.proto')
-rw-r--r-- | chromium/components/policy/proto/chrome_device_policy.proto | 1873 |
1 files changed, 1873 insertions, 0 deletions
diff --git a/chromium/components/policy/proto/chrome_device_policy.proto b/chromium/components/policy/proto/chrome_device_policy.proto new file mode 100644 index 00000000000..826b585c5c3 --- /dev/null +++ b/chromium/components/policy/proto/chrome_device_policy.proto @@ -0,0 +1,1873 @@ +// Copyright 2013 The Chromium Authors. All rights reserved. +// 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; + +import "policy_common_definitions.proto"; + +package enterprise_management; + +option go_package="chromium/policy/enterprise_management_proto"; + +// Everything below this comment will be synchronized between client and server +// repos ( go/cros-proto-sync ). + +message DevicePolicyRefreshRateProto { + // In milliseconds. + optional int64 device_policy_refresh_rate = 1; +} + +message UserWhitelistProto { + // If a UserWhitelistProto is included in the ChromeDeviceSettingsProto but + // the user_whitelist field is empty then no user can sign-in. + repeated string user_whitelist = 1; +} + +message UserAllowlistProto { + // If a UserAllowlistProto is included in the ChromeDeviceSettingsProto but + // the user_whitelist field is empty then no user can sign-in. + repeated string user_allowlist = 1; +} + +message AllowNewUsersProto { + // Determines whether we allow arbitrary users to log into the device. + // This interacts with the UserAllowlistProto as follows: + // allow_new_users | user_allowlist | anyone can log in + //-----------------+--------------------+------------------ + // present, true | not present | Yes + //-----------------+--------------------+------------------ + // present, true | present | Yes + //-----------------+--------------------+------------------ + // present, false | not present | (Broken) Yes + //-----------------+--------------------+------------------ + // present, false | present | No, W/L enforced + //-----------------+--------------------+------------------ + // not present | not present | Yes + //-----------------+--------------------+------------------ + // not present | present, empty | Yes + //-----------------+--------------------+------------------ + // not present | present, non-empty | No, W/L enforced + //-----------------+--------------------+------------------ + optional bool allow_new_users = 1 [default = true]; +} + +message GuestModeEnabledProto { + // Determines if guests are allowed to log in to the device. + optional bool guest_mode_enabled = 1 [default = true]; +} + +message ShowUserNamesOnSigninProto { + // Determines if we show pods for existing users on the sign in screen. + optional bool show_user_names = 1 [default = true]; +} + +message DataRoamingEnabledProto { + // Determines if cellular data roaming is enabled. + optional bool data_roaming_enabled = 1 [default = false]; +} + +message OBSOLETE_DeviceProxySettingsProto { + // One of "direct", "auto_detect", "pac_script", "fixed_servers", "system" + optional string OBSOLETE_proxy_mode = 1 [deprecated = true]; + optional string OBSOLETE_proxy_server = 2 [deprecated = true]; + optional string OBSOLETE_proxy_pac_url = 3 [deprecated = true]; + optional string OBSOLETE_proxy_bypass_list = 4 [deprecated = true]; +} + +// This is used by chromeos, make sure to do cleanup there before marking it as +// obsolette. +message CameraEnabledProto { + optional bool camera_enabled = 1; +} + +message MetricsEnabledProto { + optional bool metrics_enabled = 1; +} + +message ReleaseChannelProto { + // One of "stable-channel", "beta-channel", or "dev-channel" + optional string release_channel = 1; + + // The user can select the channel if |release_channel_delegated| is true. + // The value of |release_channel| is only taken into account if + // |release_channel_delegated| is set to false. + optional bool release_channel_delegated = 2; + + // |release_lts_tag| is forwarded as the "ltshint" attribute to Omaha. + optional string release_lts_tag = 3; +} + +message DeviceOpenNetworkConfigurationProto { + // The network configuration blob. This is a JSON string as specified by ONC. + optional string open_network_configuration = 1; +} + +message NetworkHostnameProto { + // The device hostname template. It might contain following + // patterns that would be substituted by the device: + // ASSET_ID, SERIAL_NUM, MAC_ADDR, and string after substitution should + // be a valid hostname. + optional string device_hostname_template = 1; +} + +message HostnameUserConfigurableProto { + // Determines if user is allowed to configure the device hostname + optional bool device_hostname_user_configurable = 1 [default = false]; +} + +// Policies to turn on portions of the device status reports. +// If changed, the default values have to be updated in +// chrome/browser/ash/policy/status_collector/device_status_collector.cc +// and +// chrome/browser/ash/policy/status_collector/child_status_collector.cc. +message DeviceReportingProto { + optional bool report_version_info = 1 [default = true]; + optional bool report_activity_times = 2 [default = true]; + optional bool report_boot_mode = 3 [default = true]; + optional bool report_location = 4 [default = false]; + optional bool report_network_interfaces = 5 [default = true]; + optional bool report_users = 6 [default = true]; + optional bool report_hardware_status = 7 [default = true]; + optional bool report_session_status = 8 [default = true]; + optional bool report_os_update_status = 10 [default = false]; + optional bool report_running_kiosk_app = 11 [default = false]; + optional bool report_power_status = 12 [default = false]; + optional bool report_storage_status = 13 [default = false]; + optional bool report_board_status = 14 [default = false]; + optional bool report_cpu_info = 15 [default = false]; + optional bool report_graphics_status = 16 [default = false]; + optional bool report_crash_report_info = 17 [default = false]; + optional bool report_timezone_info = 18 [default = false]; + optional bool report_memory_info = 19 [default = false]; + optional bool report_backlight_info = 20 [default = false]; + optional bool report_app_info = 21 [default = false]; + optional bool report_bluetooth_info = 22 [default = false]; + optional bool report_fan_info = 23 [default = false]; + optional bool report_vpd_info = 24 [default = false]; + optional bool report_system_info = 25 [default = false]; + optional bool report_print_jobs = 26 [default = false]; + optional bool report_login_logout = 27 [default = false]; + optional bool report_audio_status = 28 [default = true]; + optional bool report_network_configuration = 29 [default = true]; + optional bool report_network_status = 30 [default = true]; + optional bool report_security_status = 31 [default = false]; + optional bool report_crd_sessions = 36 [default = false]; + optional bool report_peripherals = 37 [default = false]; + + // Frequency to report device status, default to 3 hours. + // If changed, the default value has to be updated in + // chrome/browser/ash/policy/core/device_cloud_policy_manager_ash.cc. + optional int64 device_status_frequency = 9 [default = 10800000]; + + // This is a internal flag that will be used to control whether enable + // granular device reporting is enabled + optional bool enable_granular_reporting = 32 [default = true]; + + // Network telemetry policies. + optional int64 report_network_telemetry_collection_rate_ms = 33 + [default = 3600000]; + optional int64 report_network_telemetry_event_checking_rate_ms = 34 + [default = 600000]; + + // Audio telemetry policy + optional int64 report_device_audio_status_checking_rate_ms = 35 + [default = 600000]; +} + +message EphemeralUsersEnabledProto { + // Determines whether users should be treated as ephemeral. In ephemeral users + // mode, no cryptohome is created for the user, but a tmpfs mount is used + // instead such that upon logout all user state is discarded. + optional bool ephemeral_users_enabled = 1; +} + +message DeviceKeylockerForStorageEncryptionEnabledProto { + // Determines whether cryptohome uses Keylocker for storage encryption ciphers + // when supported. + optional bool enabled = 1; +} + +// Details of an extension to install as part of the AppPack. +message OBSOLETE_AppPackEntryProto { + optional string OBSOLETE_extension_id = 1 [deprecated = true]; + optional string OBSOLETE_update_url = 2 [deprecated = true]; + + // This field was added but never used and there are no plans to support it + // eventually either. + optional bool OBSOLETE_online_only = 3 [deprecated = true]; +} + +message OBSOLETE_AppPackProto { + // List of extensions to install as part of the AppPack. + repeated OBSOLETE_AppPackEntryProto app_pack = 1 [deprecated = true]; +} + +// This is a special policy for kiosk/retail mode that specifies what apps +// should be pinned to the launcher. For regular accounts, pinned apps are +// controlled through user policy. +message OBSOLETE_PinnedAppsProto { + // App IDs for the apps to pin. + repeated string OBSOLETE_app_id = 1 [deprecated = true]; +} + +message OBSOLETE_ForcedLogoutTimeoutsProto { + // All timeouts are specified in milliseconds. + + // Specifies the timeout before an idle user session is terminated. + // If this field is omitted or set to 0, no logout on idle will be performed. + optional int64 OBSOLETE_idle_logout_timeout = 1 [deprecated = true]; + + // Specifies the duration of a warning countdown before the user is logged out + // because of idleness as specified by the |idle_logout_timeout| value. + // This field is only used if |idle_logout_timeout| != 0 is specified. + optional int64 OBSOLETE_idle_logout_warning_duration = 2 [deprecated = true]; +} + +message OBSOLETE_ScreenSaverProto { + // Specifies the extension ID which is to be used as a screen saver on the + // login screen if no user activity is present. Only respected if the device + // is in RETAIL mode. + optional string OBSOLETE_screen_saver_extension_id = 1 [deprecated = true]; + + // Specifies the timeout before the screen saver is activated. If this field + // is omitted or set to 0, no screen-saver will be started. + // Measured in milliseconds. + optional int64 OBSOLETE_screen_saver_timeout = 2 [deprecated = true]; +} + +// Enterprise controls for auto-update behavior of Chrome OS. +message AutoUpdateSettingsProto { + reserved 13; + + // True if we don't want the device to auto-update (target_version_prefix is + // ignored in this case). + optional bool update_disabled = 1; + + // Specifies the prefix of the target version we want the device to + // update to, if it's on an older version. If the device is already on + // a version with the given prefix, then there's no effect. If the device is + // on a higher version, the behavior depends on |rollback_to_target_version|. + // The format of this version can be one of the following: + // --------------------------------------------------------------------- + // "" (or not set at all): update to latest version available. + // 1412.: update to any minor version of 1412 (e.g. 1412.24.34 or 1412.60.2) + // 1412.2.: update to any minor version of 1412.2 (e.g. 1412.2.34 or 1412.2.2) + // 1412.24.34: update to this specific version only + // --------------------------------------------------------------------- + optional string target_version_prefix = 2; + + // The Chrome browser version (e.g. "17.*") corresponding to the + // target_version_prefix above. The target_version_prefix is the internal OS + // version that external users normally are not aware of. This display_name + // can be used by the devices to display a message to end-users about the auto + // update setting. + optional string target_version_display_name = 3; + + // Specifies the number of seconds up to which a device may randomly + // delay its download of an update from the time the update was first pushed + // out to the server. The device may wait a portion of this time in terms + // of wall-clock-time and the remaining portion in terms of the number of + // update checks. In any case, the scatter is upper bounded by a constant + // amount of time so that a device does not ever get stuck waiting to download + // an update forever. + optional int64 scatter_factor_in_seconds = 4; + + // Enumerates network connection types. + enum ConnectionType { + reserved 2; + + CONNECTION_TYPE_ETHERNET = 0; + CONNECTION_TYPE_WIFI = 1; + CONNECTION_TYPE_BLUETOOTH = 3; + CONNECTION_TYPE_CELLULAR = 4; + } + + // The types of connections that are OK to use for OS updates. OS updates + // potentially put heavy strain on the connection due to their size and may + // incur additional cost. Therefore, they are by default not enabled for + // connection types that are considered expensive (currently only Cellular). + repeated ConnectionType allowed_connection_types = 5; + + // This has been replaced by |reboot_after_update| below. + optional bool OBSOLETE_reboot_after_update = 6 [deprecated = true]; + + // True if AU payloads can be downloaded via HTTP. False otherwise. + optional bool http_downloads_enabled = 7 [default = false]; + + // True if the device should reboot automatically when an update has been + // applied and a reboot is required to complete the update process. + // + // Note: Currently, automatic reboots are only enabled while the login screen + // is being shown or a kiosk app session is in progress. This will change in + // the future and the policy will always apply, regardless of whether a + // session of any particular type is in progress or not. + optional bool reboot_after_update = 8; + + // True if AU payloads may be shared with and consumed from other devices + // on the LAN, using p2p. False otherwise. + optional bool p2p_enabled = 9 [default = false]; + + // The possible types of rollback. + enum RollbackToTargetVersion { + // No value set. Default is ROLLBACK_DISABLED. + ROLLBACK_UNSPECIFIED = 0; + // No rollback should happen if |target_version_prefix| specifies an older + // version than the currently installed Chrome OS version. If this is the + // case, the device will still respect |target_version_prefix|, so it will + // not update Chrome OS. + ROLLBACK_DISABLED = 1; + // If |target_version_prefix| specifies an older version than the currently + // installed Chrome OS version, the device should roll back to a Chrome OS + // version starting with |target_version_prefix|. The device does a full + // powerwash during the rollback, including TPM reset. + ROLLBACK_AND_POWERWASH = 2; + // If |target_version_prefix| specifies an older version than the currently + // installed Chrome OS version, the device should roll back to a Chrome OS + // version starting with |target_version_prefix|. + // If possible, the device tries to carry over device-level configuration + // including network credentials during the rollback process. + // If that is not possible, rolls back with a full powerwash. + ROLLBACK_AND_RESTORE_IF_POSSIBLE = 3; + } + + // Specifies what should happen if |target_version_prefix| specifies an older + // version than the currently installed Chrome OS version. + optional RollbackToTargetVersion rollback_to_target_version = 10 + [default = ROLLBACK_DISABLED]; + + // Specifies the number of Chrome milestones rollback should be allowed, + // starting from the stable version at any time. Setting this policy prevents + // firmware and kernel rollback protection to apply for at least this number + // of milestones. + optional int32 rollback_allowed_milestones = 11 [default = 0]; + + // Specifies the time intervals during which the device is not allowed to do + // automatic update checks. This is a JSON string, for details see + // "DeviceAutoUpdateTimeRestrictions" in policy_templates.json. + optional string disallowed_time_intervals = 12; + + // Specifies how much of the fleet to update per day as a json + // string that contains a list of pairs <day, percentage>. For more + // details and examples, see "DeviceUpdateStagingSchedule" in + // policy_templates.json. + optional string staging_schedule = 14; + + // This token is forwarded to omaha by update_engine. If it is set, omaha may + // serve a quick fix build identified by the token. + // + // This field is primarily used for quick fixes, but it is also used by the + // Hotrod team to subdivide the Stable channel into cohorts. + optional string device_quick_fix_build_token = 15; + + // Types of channel downgrade behavior. + enum ChannelDowngradeBehavior { + // Channel downgrade behavior unspecified. Default is + // WAIT_FOR_VERSION_CATCH_UP. + CHANNEL_DOWNGRADE_BEHAVIOR_UNSPECIFIED = 0; + // On a channel downgrade, e.g. beta to stable, wait for the device's + // version to become available on the new channel. No updates happen until + // then. This is the default. + WAIT_FOR_VERSION_CATCH_UP = 1; + // Roll back and reset the device on a channel downgrade. This does a full + // powerwash and tries to preserve wifi and enrollment. + ROLLBACK = 2; + // Allow the user to decide whether to wait or roll back and reset on a + // user-initiated channel downgrade. + ALLOW_USER_TO_CONFIGURE = 3; + } + + // Specifies what should happen if the device channel is downgraded. + optional ChannelDowngradeBehavior channel_downgrade_behavior = 16 + [default = WAIT_FOR_VERSION_CATCH_UP]; + + // |target_version_selector| is forwarded as the "targetversionselector" + // attribute to Omaha and is used by it if for minor version pinning. The + // field is not and shall not be processed by the client. + optional string target_version_selector = 17; +} + +message OBSOLETE_StartUpUrlsProto { + // Specifies the URLs to be loaded on login to the anonymous account used if + // the device is in RETAIL mode. + repeated string OBSOLETE_start_up_urls = 1 [deprecated = true]; +} + +message SystemTimezoneProto { + // Specifies an owner-determined timezone that applies to the login screen and + // all users. Valid values are listed in "timezone_settings.cc". Additionally, + // timezones from the "IANA Time Zone Database" (e.g. listed on wikipedia) + // that are equivalent to one of the timezones in "timezone_settings.cc" are + // valid. In case of an invalid value, the setting is still activated with a + // fallback timezone (currently "GMT"). In case of an empty string or if no + // value is provided, the timezone device setting is inactive. In that case, + // the currently active timezone will remain in use however users can change + // the timezone and the change is persistent. Thus a change by one user + // affects the login-screen and all other users. + optional string timezone = 1; + + // This allows domain administrators to control the timezone settings for + // their devices. + enum AutomaticTimezoneDetectionType { + USERS_DECIDE = 0; + DISABLED = 1; + IP_ONLY = 2; + SEND_WIFI_ACCESS_POINTS = 3; + SEND_ALL_LOCATION_INFO = 4; + } + + optional AutomaticTimezoneDetectionType timezone_detection_type = 2; +} + +message SystemUse24HourClockProto { + // Specifies an owner-determined clock format that applies to the login + // screen and is used as a default for all user sessions. Users can still + // override the format to use for their account. + // + // True and false select a 24 and 12 hour clock format, respectively. The + // default format for the case the setting is not present is 24 hour clock. + optional bool use_24hour_clock = 1; +} + +// Parameters for Kiosk App device-local accounts. +message KioskAppInfoProto { + // Indicates the Kiosk App for the corresponding device-local account. The + // string value should be a valid 32-character Chrome App identifier and + // specifies the Kiosk App to download and run. + optional string app_id = 1; + + // Optional extension update URL to download the Kiosk App package from. If + // not specified, the app will be downloaded from the standard Chrome Web + // Store update URL. + optional string update_url = 2; +} + +// Describes which Android application is to be launched. +message AndroidKioskAppInfoProto { + // Package name (must be present). + // In the event this is the only field that is specified, runtime may use + // PackageManager.getLaunchIntentForPackage() to start the app. See + // https://developer.android.com/reference/android/content/pm/PackageManager.html + // Example of the package name: "com.android.camera". Do not include "app:" + // prefix in the package name. + optional string package_name = 1; + + // Class name (optional). If present, class name is to be combined with + // package name to form a ComponentName. See + // https://developer.android.com/reference/android/content/ComponentName.html + optional string class_name = 2; + + // Action (optional). The third parameter required for creating an Intent. + // If omitted, runtime may choose a reasonable default action + // (e.g. android.intent.action.MAIN). + // If package and action are specified, but not the class name, runtime may + // use PackageManager.queryIntentActivity() to find out the class name. + optional string action = 3; + + // Display name (optional). + // User-friendly app name that should be used in Chrome UI where kiosk app + // name is shown. Chrome side could override the string with an updated + // value that it will get from Google Play when the app will be installed. + optional string display_name = 4; +} + +// Parameters for Web App-based device local accounts. +message WebKioskAppInfoProto { + // Install url (must be present). + // In case it is the only field provided, title and icon will be deduced + // during first app launch. + optional string url = 1; + + // Title (optional). + // User-friendly app name that should be used in Chrome UI where kiosk app + // name is shown. Chrome side could override the string with an updated + // value that it will get during actual app launch. + optional string title = 2; + + // Icon url (optional). + // Is not used in the current Implementation. Will be used instead of the + // placeholder icon that is displayed before the first successful app + // launch. + optional string icon_url = 3; +} + +// Describes a single device-local account. +message DeviceLocalAccountInfoProto { + // Deprecated: Account identifier for a public session device-local account. + // Old code didn't have the |type| field, so it can't handle new types of + // device-local accounts gracefully (i.e. ignoring unsupported types). New + // code should instead set type to ACCOUNT_TYPE_PUBLIC_SESSION and write the + // identifier to the |account_id| field below. If the |type| field is present, + // |deprecated_public_session_id| will be ignored. + optional string deprecated_public_session_id = 1; + + // Identifier for the device-local account. This is an opaque identifier that + // is used to distinguish different device-local accounts configured. All + // configured accounts on a device must have unique identifiers. + optional string account_id = 2; + + // LINT.IfChange + // Indicates the type of device-local account. + enum AccountType { + // A login-less, policy-configured browsing session. + ACCOUNT_TYPE_PUBLIC_SESSION = 0; + // An account that serves as a container for a single full-screen + // Chrome app. + ACCOUNT_TYPE_KIOSK_APP = 1; + // An account that serves as a container for a single full-screen + // Android app. + ACCOUNT_TYPE_KIOSK_ANDROID_APP = 2; + // SAML public session account + ACCOUNT_TYPE_SAML_PUBLIC_SESSION = 3; + // Web App. + ACCOUNT_TYPE_WEB_KIOSK_APP = 4; + } + // Should keep ChromeServletUtil.toDimensionAccountType logic in sync with + // AccountType enum. + // LINT.ThenChange(//depot/google3/java/com/google/chrome/cros/dmserver/chrome/ChromeServletUtil.java) + + // The account type. + optional AccountType type = 3; + + // Kiosk App parameters, relevant if |type| is ACCOUNT_TYPE_KIOSK_APP. + optional KioskAppInfoProto kiosk_app = 4; + + // Kiosk App parameters, relevant if |type| is ACCOUNT_TYPE_KIOSK_ANDROID_APP + optional AndroidKioskAppInfoProto android_kiosk_app = 5; + + // Web Kiosk App parameters, relevant if |type| is ACCOUNT_TYPE_WEB_KIOSK_APP + optional WebKioskAppInfoProto web_kiosk_app = 6; +} + +message DeviceLocalAccountsProto { + // The list of device-local accounts (i.e. accounts without an associated + // cloud-backed profile) that are available on the device. + repeated DeviceLocalAccountInfoProto account = 1; + + // The identifier of the device-local account to which the device + // should be logged in automatically. Should be equal to one of the + // ids in DeviceLocalAccountInfoProto. + optional string auto_login_id = 2; + + // The amount of time, in milliseconds, that should elapse at the signin + // screen without user interaction before automatically logging in. + optional int64 auto_login_delay = 3; + + // Whether the keyboard shortcut to prevent zero-delay auto-login should be + // enabled or not. By default, the user has 3 seconds to press a shortcut + // to prevent auto-login, which is useful to sign-in to a regular user session + // and configure the machine. If this policy is set to false then this + // shortcut is disabled and there is no way to skip auto-login. + optional bool enable_auto_login_bailout = 4 [default = true]; + + // Whether network configuration should be offered or not when the device + // does not have access to the Internet. If the policy is omitted or set to + // true, the network configuration will be offered. Otherwise, only an error + // message is displayed. + // Note: If both this policy and enable_auto_login_bailout policy above is + // set to false, there are chances that the device might become totally + // unusable when there is no Internet access and has to go through the + // recovery process. + // If the device is offline at startup then the network configuration screen + // is always shown, before auto-login kicks in. + optional bool prompt_for_network_when_offline = 5 [default = true]; +} + +message ManagedGuestSessionPrivacyWarningsProto { + // Enable the privacy warnings on both; the login screen of the managed-guest + // session & inside the auto-launched managed-guest sessions. + // If this policy is set to false, all the privacy warnings are deactivated. + // If it's set to true or not set, then the privacy warnings will be shown by + // default. + optional bool enabled = 1 [default = true]; +} + +message AllowRedeemChromeOsRegistrationOffersProto { + // Chrome OS Registration service provides way for chromeos device users + // to redeem electronic offers provided by service provider. + // This value determines if users are allowed to redeem offers through + // Chrome OS Registration service. + optional bool allow_redeem_offers = 1 [default = true]; +} + +message FeatureFlagsProto { + // Specifies switches that should be passed to Google Chrome when it starts. + // The specified switches are applied on the login screen only. Switches set + // via this policy do not propagate into user sessions. + // This is deprecated because it turned out that storing raw switches is + // problematic since Chrome can't easily tie switches back to feature flags to + // validate them. The |feature_flags| field below works in terms of feature + // flag names (i.e. chrome://flags items) instead and supersedes |switches|. + repeated string switches = 1 [deprecated = true]; + + // Specifies feature flags (i.e. chrome://flags items) that should be enabled + // when Chrome starts. The format of the individual entries matches the format + // chrome://flags uses for internal bookkeeping, i.e. either the flag name as + // listed on chrome://flags (for flags that only have a single choice besides + // the default) or the flag name followed by the index of the chosen option, + // separated by an '@' character (for flags with multiple choices). The + // specified feature flags are applied on the login screen only and don't + // propagate into the user session. + repeated string feature_flags = 2; +} + +message UptimeLimitProto { + // This has been replaced by |uptime_limit| below. + optional int64 OBSOLETE_uptime_limit = 1 [deprecated = true]; + + // Sets the length of device uptime after which an automatic reboot is + // scheduled. An automatic reboot is scheduled at the selected time but may be + // delayed on the device by up to 24 hours, e.g. if a user is currently using + // the device or an app/extension has requested reboots to be inhibited + // temporarily. The policy value should be specified in seconds. + // + // Note: Currently, automatic reboots are only enabled while the login screen + // is being shown or a kiosk app session is in progress. This will change in + // the future and the policy will always apply, regardless of whether a + // session of any particular type is in progress or not. + optional int64 uptime_limit = 2; +} + +message VariationsParameterProto { + // The string for the restrict parameter to be appended to the Variations URL + // when pinging the Variations server. + optional string parameter = 1; +} + +message AttestationSettingsProto { + // Attestation involves proving that a cryptographic key is protected by a + // legitimate Chrome OS TPM and reporting the operating mode of the platform. + // This setting enables enterprise attestation features at a device level. If + // this is enabled a machine key will be generated and certified by the Chrome + // OS CA. If this setting is disabled, even users with attestation settings + // enabled will not be able to use those features on the device. + optional bool attestation_enabled = 1 [default = false]; + + // Chrome OS devices can use remote attestation (Verified Access) to get a + // certificate issued by the Chrome OS CA that asserts the device is eligible + // to play protected content. This process involves sending hardware + // endorsement information to the Chrome OS CA which uniquely identifies the + // device. This setting allows this feature to be disabled for the device + // regardless of any user-specific settings. + optional bool content_protection_enabled = 2 [default = true]; +} + +message AccessibilitySettingsProto { + // Sets the default state of the following accessibility features on the login + // screen: + // + // 1) Large cursor: login_screen_default_large_cursor_enabled + // 2) Spoken feedback: login_screen_default_spoken_feedback_enabled + // 3) High contrast: login_screen_default_high_contrast_enabled + // 4) Screen magnifier: login_screen_default_screen_magnifier_type + // 5) Virtual keyboard: login_screen_default_virtual_keyboard_enabled + // + // Each acts as follows: If the corresponding policy is set to true, the + // associated accessibility feature will be enabled when the login screen is + // shown. If this policy is set to false, the accessibility feature will be + // disabled when the login screen is shown. Users can temporarily override + // this setting by enabling or disabling the corresponding accessibiilty + // feature. However, the user's choice is not persistent and the default is + // restored whenever the login screen is shown anew or the user remains idle + // on the login screen for a minute. If this policy is left unset, the + // corresponding accessibiilty feature is disabled when the login screen is + // first shown. Users can enable or disable the corresponding accessibiilty + // feature anytime and its status on the login screen is persisted between + // users. + + optional bool login_screen_default_large_cursor_enabled = 1; + optional bool login_screen_default_spoken_feedback_enabled = 2; + optional bool login_screen_default_high_contrast_enabled = 3; + + // Enumerates the screen magnifier types. + enum ScreenMagnifierType { + // Screen magnifier disabled. + SCREEN_MAGNIFIER_TYPE_NONE = 0; + // Full-screen magnifier enabled. + SCREEN_MAGNIFIER_TYPE_FULL = 1; + } + optional ScreenMagnifierType login_screen_default_screen_magnifier_type = 4; + + optional bool login_screen_default_virtual_keyboard_enabled = 5; + + // Sets the mandatory or default state, depending on the PolicyOptions, of the + // following accessibility features on the login screen: + // + // 1) Large cursor: login_screen_large_cursor_enabled + // PolicyOptions: login_screen_large_cursor_enabled_options + // 2) Spoken feedback: login_screen_spoken_feedback_enabled + // PolicyOptions: login_screen_spoken_feedback_enabled_options + // 3) High contrast: login_screen_high_contrast_enabled + // PolicyOptions: login_screen_high_contrast_enabled_options + // 4) Virtual keyboard: login_screen_virtual_keyboard_enabled + // PolicyOptions: login_screen_virtual_keyboard_enabled_options + // 5) Dictation: login_screen_dictation_enabled + // PolicyOptions: login_screen_dictation_enabled_options + // 6) Select to speak: login_screen_select_to_speak_enabled + // PolicyOptions: login_screen_select_to_speak_enabled_options + // 7) Cursor highlight: login_screen_cursor_highlight_enabled + // PolicyOptions: login_screen_cursor_highlight_enabled_options + // 8) Caret highlight: login_screen_caret_highlight_enabled + // PolicyOptions: login_screen_caret_highlight_enabled_options + // 9) Mono audio: login_screen_mono_audio_enabled + // PolicyOptions: login_screen_mono_audio_enabled_options + // 10) Autoclick: login_screen_autoclick_enabled + // PolicyOptions: login_screen_autoclick_enabled_options + // 11) Sticky keys: login_screen_sticky_keys_enabled + // PolicyOptions: login_screen_sticky_keys_enabled_options + // 12) Keyboard focus highlight: login_screen_keyboard_focus_highlight_enabled + // PolicyOptions: login_screen_keyboard_focus_highlight_enabled_options + // 13) Screen magnifier: login_screen_screen_magnifier_type + // PolicyOptions: login_screen_screen_magnifier_type_options + // 14) Show options in system tray menu: + // login_screen_show_options_in_system_tray_menu_enabled + // PolicyOptions: login_screen_sticky_keys_enabled_options + // 15) Accessibility shortcuts: login_screen_shortcuts_enabled + // PolicyOptions: login_screen_shortcuts_enabled_options + // + // For all the aforementioned accessibility policies: + // - If this policy is set to true, the accessibility feature will be enabled + // when the login screen is shown. + // - If the policy is set to false, the accessibility feature will be + // disabled when the login screen is shown. + // - If the policy is left unset, the accessibility feature is disabled when + // the login screen is first shown. + // - If the PolicyOptions is set to mandatory, the user won't be able + // to change these settings. + // - If the PolicyOptions is set to recommended, the user can temporarily + // override this setting by enabling or disabling the accessibility feature. + // However, the user's choice is not persistent and the default is restored + // whenever the login screen is shown anew or the user remains idle on the + // login screen for a minute. Users can enable or disable the accessibility + // feature anytime and its status on the login screen is persisted between + // users. + + optional bool login_screen_large_cursor_enabled = 6; + optional PolicyOptions login_screen_large_cursor_enabled_options = 7; + + optional bool login_screen_spoken_feedback_enabled = 8; + optional PolicyOptions login_screen_spoken_feedback_enabled_options = 9; + + optional bool login_screen_high_contrast_enabled = 10; + optional PolicyOptions login_screen_high_contrast_enabled_options = 11; + + optional bool login_screen_virtual_keyboard_enabled = 12; + optional PolicyOptions login_screen_virtual_keyboard_enabled_options = 13; + + optional bool login_screen_dictation_enabled = 14; + optional PolicyOptions login_screen_dictation_enabled_options = 15; + + optional bool login_screen_select_to_speak_enabled = 16; + optional PolicyOptions login_screen_select_to_speak_enabled_options = 17; + + optional bool login_screen_cursor_highlight_enabled = 18; + optional PolicyOptions login_screen_cursor_highlight_enabled_options = 19; + + optional bool login_screen_caret_highlight_enabled = 20; + optional PolicyOptions login_screen_caret_highlight_enabled_options = 21; + + optional bool login_screen_mono_audio_enabled = 22; + optional PolicyOptions login_screen_mono_audio_enabled_options = 23; + + optional bool login_screen_autoclick_enabled = 24; + optional PolicyOptions login_screen_autoclick_enabled_options = 25; + + optional bool login_screen_sticky_keys_enabled = 26; + optional PolicyOptions login_screen_sticky_keys_enabled_options = 27; + + optional bool login_screen_keyboard_focus_highlight_enabled = 28; + optional PolicyOptions login_screen_keyboard_focus_highlight_enabled_options = + 29; + + optional int64 login_screen_screen_magnifier_type = 30; + optional PolicyOptions login_screen_screen_magnifier_type_options = 31; + + optional bool login_screen_show_options_in_system_tray_menu_enabled = 32; + optional PolicyOptions + login_screen_show_options_in_system_tray_menu_enabled_options = 33; + + optional bool login_screen_shortcuts_enabled = 34; + optional PolicyOptions login_screen_shortcuts_enabled_options = 35; +} + +message OBSOLETE_SupervisedUsersSettingsProto { + // Defines whether supervised users can be created on the device. + optional bool OBSOLETE_supervised_users_enabled = 1 [deprecated = true]; +} + +message LoginScreenPowerManagementProto { + // Configures power management on the login screen. The policy should be + // specified as a string that expresses the individual settings in JSON + // format, conforming to the following schema: + // { + // "type": "object", + // "properties": { + // "AC": { + // "description": "Power management settings applicable only when + // running on AC power", + // "type": "object", + // "properties": { + // "Delays": { + // "type": "object", + // "properties": { + // "ScreenDim": { + // "description": "The length of time without user input after + // which the screen is dimmed, in milliseconds", + // "type": "integer", + // "minimum": 0 + // }, + // "ScreenOff": { + // "description": "The length of time without user input after + // which the screen is turned off, in + // milliseconds", + // "type": "integer", + // "minimum": 0 + // }, + // "Idle": { + // "description": "The length of time without user input after + // which the idle action is taken, in + // milliseconds", + // "type": "integer", + // "minimum": 0 + // } + // } + // }, + // "IdleAction": { + // "description": "Action to take when the idle delay is reached", + // "enum": [ "Suspend", "Shutdown", "DoNothing" ] + // } + // } + // }, + // "Battery": { + // "description": "Power management settings applicable only when + // running on battery power", + // "type": "object", + // "properties": { + // "Delays": { + // "type": "object", + // "properties": { + // "ScreenDim": { + // "description": "The length of time without user input after + // which the screen is dimmed, in milliseconds", + // "type": "integer", + // "minimum": 0 + // }, + // "ScreenOff": { + // "description": "The length of time without user input after + // which the screen is turned off, in + // milliseconds", + // "type": "integer", + // "minimum": 0 + // }, + // "Idle": { + // "description": "The length of time without user input after + // which the idle action is taken, in + // milliseconds", + // "type": "integer", + // "minimum": 0 + // } + // } + // }, + // "IdleAction": { + // "description": "Action to take when the idle delay is reached", + // "enum": [ "Suspend", "Shutdown", "DoNothing" ] + // } + // } + // }, + // "LidCloseAction": { + // "description": "Action to take when the lid is closed", + // "enum": [ "Suspend", "Shutdown", "DoNothing" ] + // }, + // "UserActivityScreenDimDelayScale": { + // "description": "Percentage by which the screen dim delay is scaled + // when user activity is observed while the screen is + // dimmed or soon after the screen has been turned off", + // "type": "integer", + // "minimum": 0 + // } + // } + // } + optional string login_screen_power_management = 1; +} + +message AutoCleanupSettigsProto { + // Deprecated. There is only one disk-full cleanup strategy: LRU. + optional string clean_up_strategy = 1; +} + +// Settings that control low-level functions of the system. +message SystemSettingsProto { + // Whether developer mode is allowed on the device. If the device owner sets + // this flag to true, the system will refuse to boot and show an error screen + // when the developer switch is turned on. + optional bool block_devmode = 1; +} + +// Settings that control login for SAML users. +message SAMLSettingsProto { + // Whether cookies set by a SAML IdP should be transferred to users' profiles + // every time a user authenticates via SAML during login. If false, cookies + // are transferred during each user's first login only. + optional bool transfer_saml_cookies = 1; +} + +message RebootOnShutdownProto { + // Determines whether the device automatically reboots whenever the user shuts + // it down. If this flag is set to true, shutdown is forbidden and UI elements + // trigger a device reboot instead of a power off. This policy affects + // shutdowns triggered from the UI only. If the user shuts down the device + // using the power button, it will not automatically reboot, even if the + // policy is enabled. + optional bool reboot_on_shutdown = 1 [default = false]; +} + +// Settings that control whether a device would send heartbeat messages to GCM, +// and how frequently to send these. +message DeviceHeartbeatSettingsProto { + // Whether the device should send heartbeat messages. The default is false. + optional bool heartbeat_enabled = 1 [default = false]; + + // How frequently devices send heartbeats back to server. The unit is in + // milliseconds. The default is 2 minutes. + optional int64 heartbeat_frequency = 2 [default = 120000]; +} + +message ExtensionCacheSizeProto { + // Specifies the maximum extension cache size, in bytes. The default is 256 + // MiB. The minimum allowed value is 1 MiB, smaller values will get ignored. + optional int64 extension_cache_size = 1; +} + +message LoginScreenDomainAutoCompleteProto { + // If this policy is not configured or set to a blank string, + // no autocomplete option during user sign-in flow will be shown. + // If this policy is set to a string representing a domain name, an + // autocomplete option during user sign-in will be shown allowing the user + // to type in only their user name without the domain name extension. The user + // will be able to overwrite this domain name extension. + optional string login_screen_domain_auto_complete = 1; +} + +// Settings that control whether a device would send system logs to the server. +message DeviceLogUploadSettingsProto { + // Whether the device should send system logs. The default is false. + optional bool system_log_upload_enabled = 1 [default = false]; +} + +// This setting is controlled by the device policy DisplayRotationDefault. +// If the policy is set and therefore display_rotation_default contains a value, +// all displays will be rotated clockwise to the specified orientation at +// reboot, when first connected, or when the setting is changed. +// If the optional field |Rotation display_rotation_default = 1| is not present, +// no changes are done to the rotation. +message DisplayRotationDefaultProto { + // This enum corresponds to gfx::Display::Rotation in ui/gfx/display.h. + enum Rotation { + ROTATE_0 = 0; + ROTATE_90 = 1; + ROTATE_180 = 2; + ROTATE_270 = 3; + } + optional Rotation display_rotation_default = 1; +} + +// This setting is controlled by the device policy +// DeviceLoginScreenPrivacyScreenEnabled. +message DeviceLoginScreenPrivacyScreenEnabledProto { + optional bool enabled = 1 [default = false]; +} + +// This setting is configured by the device policy DeviceDisplayResolution. +// If |device_display_resolution| contains a value, then it's treated as a JSON +// object that uses the schema defined for DeviceDisplayResolution policy. +// Example of the policy value: +// { +// "external_width": 1920, +// "external_height": 1080, +// "external_scale_percentage": 50, +// "internal_scale_percentage": 150, +// "recommended": true +// } +// It sets a 1920x1080 display mode for any external displays and +// scales them to 50%, also scales the built-in display to 150%. +// If "recommended" flag is set to true, user is able to override +// any settings via the settings page. +message DeviceDisplayResolutionProto { + optional string device_display_resolution = 1; +} + +// Settings that control whether to allow Chrome to be pinned to a specific +// version according to the auto-launched kiosk app’s requirement. +message AllowKioskAppControlChromeVersionProto { + optional bool allow_kiosk_app_control_chrome_version = 1 [default = false]; +} + +// Settings that control the flow of the login authentication to be either via +// GAIA (default), or via an interstitial screen that can redirect to a SAML IdP +// endpoint or return back to the default GAIA flow. +message LoginAuthenticationBehaviorProto { + enum LoginBehavior { + GAIA = 0; + SAML_INTERSTITIAL = 1; + } + + optional LoginBehavior login_authentication_behavior = 1 [default = GAIA]; +} + +// Identifiers of a USB device or device family. +message UsbDeviceIdProto { + // USB Vendor Identifier (aka idVendor). + optional int32 vendor_id = 1; + // USB Product Identifier (aka idProduct). + optional int32 product_id = 2; +} + +// This setting contains the list of USB devices to detach from the kernel +// drivers in order to use them in web applications. +// The list is used by the permission_broker daemon. +message UsbDetachableWhitelistProto { + repeated UsbDeviceIdProto id = 1; +} + +// Identifiers of a USB device or device family. +message UsbDeviceIdInclusiveProto { + // USB Vendor Identifier (aka idVendor). + optional int32 vendor_id = 1; + // USB Product Identifier (aka idProduct). + optional int32 product_id = 2; +} + +// This setting contains the list of USB devices to detach from the kernel +// drivers in order to use them in web applications. +// The list is used by the permission_broker daemon. +message UsbDetachableAllowlistProto { + repeated UsbDeviceIdInclusiveProto id = 1; +} + +message AllowBluetoothProto { + // Policy which controls whether Bluetooth is available. + optional bool allow_bluetooth = 1 [default = true]; +} + +message DeviceWiFiAllowedProto { + // Policy which controls the ability to connect to wireless networks. + optional bool device_wifi_allowed = 1 [default = true]; +} + +// Settings that control whether a device can download hardware configuration +// files from the Quirks Server. +message DeviceQuirksDownloadEnabledProto { + optional bool quirks_download_enabled = 1; +} + +// A list of security origins for SAML login pages that are allowed to +// access the webcam. No login pages will be allowed to access the +// webcam if the list is empty. +message LoginVideoCaptureAllowedUrlsProto { + repeated string urls = 1; +} + +// Settings that control whether a device can connect to a 802.11r enabled +// WiFi network. +message DeviceWiFiFastTransitionEnabledProto { + optional bool device_wifi_fast_transition_enabled = 1; +} + +message NetworkThrottlingEnabledProto { + optional bool enabled = 1 [default = false]; + optional int32 upload_rate_kbits = 2 [default = 0]; + optional int32 download_rate_kbits = 3 [default = 0]; +} + +// A list of apps or extensions to install from the webstore on the login page. +// It is a list of strings, each string contains an extension ID and an update +// URL, delimited by a semicolon. +message DeviceLoginScreenExtensionsProto { + repeated string device_login_screen_extensions = 1; +} + +// A list of allowed locales on the login screen. +message LoginScreenLocalesProto { + repeated string login_screen_locales = 1; +} + +// A list of allowed input methods on the login screen. +message LoginScreenInputMethodsProto { + repeated string login_screen_input_methods = 1; +} + +// The url and hash specified in JSON format that can be used to set the +// device-level wallpaper on the login screen before any user logs in. +message DeviceWallpaperImageProto { + optional string device_wallpaper_image = 1; +} + +// Migration strategy for the case when ARC(N+) needs the ext4 encryption while +// the device used ecryptfs in the past. +message DeviceEcryptfsMigrationStrategyProto { + enum MigrationStrategy { + // Default value, unspecified. + UNSET = 0; + // ARC is not allowed, no data migration needed. + DISALLOW_ARC = 1; + // The data migration is allowed, opening the possibility to use ARC. + ALLOW_MIGRATION = 2; + } + + optional MigrationStrategy migration_strategy = 1; +} + +// This setting controls how the on-board secure element hardware can be used +// to provide a second-factor authentication in addition to the TPM +// functionality. +message DeviceSecondFactorAuthenticationProto { + enum U2fMode { + // Default value, unspecified. + UNSET = 0; + // Feature disabled. + DISABLED = 1; + // U2F as defined by the FIDO Alliance specification: + // https://fidoalliance.org/specs/fido-u2f-v1.1-id-20160915.zip + U2F = 2; + // U2F plus extensions for individual attestation certificate. + U2F_EXTENDED = 3; + } + + optional U2fMode mode = 1; +} + +message CastReceiverNameProto { + // The name advertised as a Google Cast destination by the device, + // up to 24 characters. If the name is empty, the device name will + // be used. + optional string name = 1; +} + +// Day of the week and time in milliseconds since the start of the day. +message WeeklyTimeProto { + enum DayOfWeek { + DAY_OF_WEEK_UNSPECIFIED = 0; + MONDAY = 1; + TUESDAY = 2; + WEDNESDAY = 3; + THURSDAY = 4; + FRIDAY = 5; + SATURDAY = 6; + SUNDAY = 7; + } + // Day of week. + optional DayOfWeek day_of_week = 1; + // Time of day in milliseconds from beginning of the day. + optional int32 time = 2; +} + +// Start and end of an interval represented by WeeklyTimes +message WeeklyTimeIntervalProto { + optional WeeklyTimeProto start = 1; + optional WeeklyTimeProto end = 2; +} + +// Allow less restricted using of Chromebooks that are managed by school, +// while the device is not at school ("OffHours"). +message DeviceOffHoursProto { + // List of intervals when ignored policies are not applied. These intervals + // are in the timezone specified by the timezone string. + repeated WeeklyTimeIntervalProto intervals = 1; + // Timezone in the same format as SystemTimezoneProto.timezone. + optional string timezone = 2; + // List of policy proto tags which settings are ignored during OffHours + // mode. List contains policy proto tags from ChromeDeviceSettingsProto + // (i.e. proto tag = 1 means device_policy_refresh_rate policy). + // Proto tags are used because they are consistent identifiers. + // During OffHoursMode default settings of ignored policies are used. + repeated int32 ignored_policy_proto_tags = 3; +} + +// The url and hash specified in JSON format that can be used to retrieve +// the device-level printers configuration file. +message DeviceNativePrintersProto { + // External policy blob encoded as JSON. + optional string external_policy = 1; +} + +// The policy which determines the type of access restriction that is applied to +// the devicel-level printers list. +message DeviceNativePrintersAccessModeProto { + enum AccessMode { + ACCESS_MODE_BLACKLIST = 0; // Use NatvePrintersBlacklistProto. + ACCESS_MODE_WHITELIST = 1; // Use NaviePrintersWhitelistProto. + ACCESS_MODE_ALL = 2; // Allow access to all specified printers. + } + + // The type of access which is applied to the device-level printer list. + optional AccessMode access_mode = 1; +} + +// A collection of ids defining the printers which are explicitly disallowed for +// the device. +message DeviceNativePrintersBlacklistProto { + // A collection of ids for which are explicitly disallowed. + repeated string blacklist = 1; +} + +// A collection of ids defining the printers which are explicitly allowed for +// the device. +message DeviceNativePrintersWhitelistProto { + // A collection of ids for the list of printers which are accessible. + repeated string whitelist = 1; +} + +// The url and hash specified in JSON format that can be used to retrieve +// the device-level printers configuration file. +message DevicePrintersProto { + // External policy blob encoded as JSON. + optional string external_policy = 1; +} + +// A collection of ids for the list of print servers which are accessible. +// The policy which determines the type of access restriction that is applied to +// the devicel-level printers list. +message DevicePrintersAccessModeProto { + enum AccessMode { + ACCESS_MODE_BLOCKLIST = 0; // Use DevicePrintersBlocklistProto. + ACCESS_MODE_ALLOWLIST = 1; // Use DevicePrintersAllowlistProto. + ACCESS_MODE_ALL = 2; // Allow access to all specified printers. + } + + // The type of access which is applied to the device-level printer list. + optional AccessMode access_mode = 1; +} + +// A collection of ids defining the printers which are explicitly disallowed for +// the device. +message DevicePrintersBlocklistProto { + // A collection of ids for which are explicitly disallowed. + repeated string blocklist = 1; +} + +// A collection of ids defining the printers which are explicitly allowed for +// the device. +message DevicePrintersAllowlistProto { + // A collection of ids for the list of printers which are accessible. + repeated string allowlist = 1; +} + +// The url and hash specified in JSON format that can be used to retrieve +// the device-level external print servers configuration file. +message DeviceExternalPrintServersProto { + // External policy blob encoded as JSON. + optional string external_policy = 1; +} + +// A collection of ids defining the external print servers which are explicitly +// allowed for the device. +message DeviceExternalPrintServersAllowlistProto { + // A collection of ids for the list of print servers which are accessible. + repeated string allowlist = 1; +} + +// Settings to control the behavior of the TPM firmware update functionality. +message TPMFirmwareUpdateSettingsProto { + // Whether the user is allowed to invoke the update via powerwash. This flow + // performs a powerwash operation (which implies a TPM clear), followed by + // installation of the TPM firmware update. As a result of the powerwash, all + // writable data on the device will be cleared. + optional bool allow_user_initiated_powerwash = 1; + + // Whether the user is allowed to invoke a variant of the update flow that + // clears the TPM to install the firmware update, but preserves device-wide + // state (including enrollment). User data will not be preserved in this flow. + optional bool allow_user_initiated_preserve_device_state = 2; + + enum AutoUpdateMode { + // No value set. Default is NEVER. + AUTO_UPDATE_MODE_UNSPECIFIED = 0; + // Don't auto update TPM firmware. + NEVER = 1; + // Update firmware at the next reboot after user acknowledges the update. + USER_ACKNOWLEDGMENT = 2; + // Update firmware at the next reboot. + WITHOUT_ACKNOWLEDGMENT = 3; + // Update firmware after enrollment. + ENROLLMENT = 4; + } + + // Controls how automatic firmware updates are enforced for vulnerable + // firmware. All flows preserve local device state. + optional AutoUpdateMode auto_update_mode = 3 [default = NEVER]; +} + +// Settings to control the minimum version that is allowed to sign in / stay +// in session. This is now deprecated from M82 onwards. +message OBSOLETE_MinimumRequiredVersionProto { + // Value is chrome_version string, e.g. 61.0.3163.120 + // The client will use prefix matching to compare its version against the + // value of this field. + optional string OBSOLETE_chrome_version = 1 [deprecated = true]; +} + +// Specifies a list of rules to automatically select certificates on SAML IdP +// pages on the sign-in screen. +message DeviceLoginScreenAutoSelectCertificateForUrls { + // Each entry is one rule, which must be a stringified JSON dictionary. + // Each dictionary must have the form { "pattern": "$URL_PATTERN", "filter" : + // $FILTER }. $FILTER restricts from which client certificates the browser + // will automatically select. Independent of the filter, only certificates + // will be selected that match the server's certificate request. If $FILTER + // has the form { "ISSUER": { "CN": "$ISSUER_CN" } }, additionally only client + // certificates are selected that are issued by a certificate with the + // CommonName $ISSUER_CN. If $FILTER is the empty dictionary {}, the selection + // of client certificates is not additionally restricted. + repeated string login_screen_auto_select_certificate_rules = 1; +} + +// Setting that controls whether unaffiliated users are allowed to use ARC +// (true by default) +message UnaffiliatedArcAllowedProto { + optional bool unaffiliated_arc_allowed = 1; +} + +// Allowed encryption types for requesting Kerberos tickets from Active +// Directory servers. Applies to Active Directory management mode only. +message DeviceKerberosEncryptionTypesProto { + enum Types { + ENC_TYPES_ALL = 0; // AES + RC4_HMAC. + ENC_TYPES_STRONG = 1; // AES only. + ENC_TYPES_LEGACY = 2; // RC4_HMAC only. + // Next ID to use: 3 + } + + optional Types types = 1 [default = ENC_TYPES_STRONG]; +} + +// Specifies how user policy from device GPOs interacts with user policy from +// user GPOs. In 'MERGE' mode, device GPOs take preference in case of conflicts. +// Applies to Active Directory management mode only. +message DeviceUserPolicyLoopbackProcessingModeProto { + enum Mode { + USER_POLICY_MODE_DEFAULT = 0; // Only take user policy from user GPOs. + USER_POLICY_MODE_MERGE = 1; // Merge device GPOs on top of user GPOs. + USER_POLICY_MODE_REPLACE = 2; // Only take user policy from device GPOs. + // Next ID to use: 3 + } + + optional Mode mode = 1 [default = USER_POLICY_MODE_DEFAULT]; +} + +// Specifies a list of origins. Each of the specified origins will run in its +// own process on the sign-in screen. +message OBSOLETE_DeviceLoginScreenIsolateOriginsProto { + // A comma-separated list of the origins to be run in a separate process on + // the sign-in screen. + // If the value of this policy does not match the value of the user policy + // IsolateOrigins, the chrome process will be restarted on user sign-in to + // apply the value specified by the user policy. + optional string OBSOLETE_isolate_origins = 1 [deprecated = true]; +} + +// Specifies if each site should run in its own process on the sign-in screen. +message OBSOLETE_DeviceLoginScreenSitePerProcessProto { + // If true, each site will run in its own process on the sign-in screen. + // If the value of this policy does not match the value of the user policy + // SitePerProcess, the chrome process will be restarted on user sign-in to + // apply the value specified by the user policy. + optional bool OBSOLETE_site_per_process = 1 [deprecated = true]; +} + +// Setting to control if running virtual machines on Chrome OS is allowed. +message VirtualMachinesAllowedProto { + optional bool virtual_machines_allowed = 1; +} + +// Specifies if and how often Active Directory machine (computer) account +// passwords are changed in the AuthPolicy daemon in Chrome OS. +// Applies to Active Directory management mode only. +message DeviceMachinePasswordChangeRateProto { + optional int32 rate_days = 1; +} + +// Specifies how long cached Active Directory Group Policy Objects (GPOs) may be +// reused until they are re-downloaded (a version change also forces a +// re-download). +// Applies to Active Directory management mode only. +message DeviceGpoCacheLifetimeProto { + optional int32 lifetime_hours = 1; +} + +// Specifies how long cached Active Directory authentication data may be reused +// until it is refreshed. This can significantly speed up user authentication. +// Applies to Active Directory management mode only. +message DeviceAuthDataCacheLifetimeProto { + optional int32 lifetime_hours = 1; +} + +// Setting to control the authentication type for newly added users which log in +// via SAML. +message SamlLoginAuthenticationTypeProto { + enum Type { + TYPE_DEFAULT = 0; // Implementation-defined default config. + TYPE_CLIENT_CERTIFICATE = 1; // Client certificate authentication. + // Next ID to use: 2 + } + + optional Type saml_login_authentication_type = 1 [default = TYPE_DEFAULT]; +} + +// Setting that controls whether unaffiliated users are allowed to run Crostini +// (true by default) +message DeviceUnaffiliatedCrostiniAllowedProto { + optional bool device_unaffiliated_crostini_allowed = 1; +} + +// Setting that controls whether PluginVm is allowed to run on this device. +message PluginVmAllowedProto { + optional bool plugin_vm_allowed = 1; +} + +// Setting that specifies PluginVm license key for this device. +message PluginVmLicenseKeyProto { + optional string plugin_vm_license_key = 1; +} + +// Setting that controls whether the device should reboot when user sign out. +message DeviceRebootOnUserSignoutProto { + enum RebootOnSignoutMode { + // No value set. Default is NEVER. + REBOOT_ON_SIGNOUT_MODE_UNSPECIFIED = 0; + // Do not reboot on signout. + NEVER = 1; + // Reboot on signout if an ARC session was active during the user session. + ARC_SESSION = 2; + // Always reboot on signout. + ALWAYS = 3; + // Reboot on signout if an ARC session was active or a VM was started + // during the user session. + VM_STARTED_OR_ARC_SESSION = 4; + } + + optional RebootOnSignoutMode reboot_on_signout_mode = 1 [default = NEVER]; +} + +// Setting that controls whether wilco diagnostics and telemetry controller is +// allowed on this device. +message DeviceWilcoDtcAllowedProto { + optional bool device_wilco_dtc_allowed = 1; +} + +// Setting that specifies wilco diagnostics and telemetry controller +// configuration for this device. +message DeviceWilcoDtcConfigurationProto { + optional string device_wilco_dtc_configuration = 1; +} + +// Settings that control power peak shift policy. +message DevicePowerPeakShiftProto { + // Setting that controls whether power peak shift is enabled on this device. + // For details see "DevicePowerPeakShiftEnabled" in policy_templates.json. + optional bool enabled = 1; + + // Setting that controls power peak shift battery threshold on this device. + // For details see "DevicePowerPeakShiftBatteryThreshold" in + // policy_templates.json. + optional int32 battery_threshold = 2; + + // Setting that controls power peak shift day configs on this device. + // This is a JSON string, for details see "DevicePowerPeakShiftDayConfig" in + // policy_templates.json. + optional string day_configs = 3; +} + +// Settings that control boot on AC policy. +message DeviceBootOnAcProto { + // Setting that controls whether boot on AC is enabled on this device. + optional bool enabled = 1; +} + +// Settings that control device's dock MAC address source. +message DeviceDockMacAddressSourceProto { + enum Source { + SOURCE_UNSPECIFIED = 0; + // Device's designated dock MAC address. + DEVICE_DOCK_MAC_ADDRESS = 1; + // Device's built-in NIC MAC address. + DEVICE_NIC_MAC_ADDRESS = 2; + // Dock's built-in NIC MAC address. + DOCK_NIC_MAC_ADDRESS = 3; + } + optional Source source = 1; +} + +// Settings that control advanced battery charge mode policy. +message DeviceAdvancedBatteryChargeModeProto { + // Setting that controls whether advanced battery charge mode is enabled on + // this device. + // For details see "DeviceAdvancedBatteryChargeModeEnabled" in + // policy_templates.json. + optional bool enabled = 1; + + // Setting that controls advanced battery charge mode day config on this + // device. + // This is a JSON string, for details see + // "DeviceAdvancedBatteryChargeModeDayConfig" in policy_templates.json. + optional string day_configs = 2; +} + +// Settings that control battery charge mode policy. +message DeviceBatteryChargeModeProto { + enum BatteryChargeMode { + MODE_UNSPECIFIED = 0; + STANDARD = 1; + EXPRESS_CHARGE = 2; + PRIMARILY_AC_USE = 3; + ADAPTIVE = 4; + CUSTOM = 5; + } + + // Setting that controls battery charge mode on this device. + // For details see "DeviceBatteryChargeMode" in policy_templates.json. + optional BatteryChargeMode battery_charge_mode = 1; + + // Percent at which charging starts when using CUSTOM. + // For details see "DeviceBatteryChargeCustomStartCharging" in + // policy_templates.json. + optional int32 custom_charge_start = 2; + + // Percent at which charging stops when using CUSTOM. + // For details see "DeviceBatteryChargeCustomStopCharging" in + // policy_templates.json. + optional int32 custom_charge_stop = 3; +} + +// Settings that control USB power share policy. +message DeviceUsbPowerShareProto { + // Setting that controls whether USB power share is enabled on this device. + optional bool enabled = 1; +} + +// Settings that control when a device will wake up and check for updates. These +// checks are recurring. In order to disable a set schedule the policy must be +// removed. +message DeviceScheduledUpdateCheckProto { + // This is a JSON string, for details see "DeviceScheduledUpdateCheck" in + // policy_templates.json. + optional string device_scheduled_update_check_settings = 1; +} + +// Settings that control if the device is allowed to powerwash. +message DevicePowerwashAllowedProto { + // Determines if powerwash is allowed on the device. + optional bool device_powerwash_allowed = 1; +} + +// Settings that controls which devices are whitelisted for certain urls to be +// used via the WebUSB API on the login screen. +message DeviceLoginScreenWebUsbAllowDevicesForUrlsProto { + // This is a JSON string, for details see + // "DeviceLoginScreenWebUsbAllowDevicesForUrls" in policy_templates.json. + optional string device_login_screen_webusb_allow_devices_for_urls = 1; +} + +// Settings that control the availability of System-proxy service and the web +// proxy credentials for system services connecting through System-proxy. +message SystemProxySettingsProto { + // This is a JSON string, for details see "SystemProxySettings" in + // policy_templates.json. + optional string system_proxy_settings = 1; +} + +// Settings that control what certificates should be privisioned via DM server. +message RequiredClientCertificateForDeviceProto { + // This is a JSON string, for details see + // "RequiredClientCertificateForDevice" in policy_templates.json. + optional string required_client_certificate_for_device = 1; +} + +// Setting that controls whether ARC ADB sideloading is allowed for the device. +message DeviceCrostiniArcAdbSideloadingAllowedProto { + enum AllowanceMode { + DISALLOW = 0; + DISALLOW_WITH_POWERWASH = 1; + ALLOW_FOR_AFFILIATED_USERS = 2; + // Next ID to use: 3 + } + + optional AllowanceMode mode = 1 [default = DISALLOW]; +} + +message DeviceShowLowDiskSpaceNotificationProto { + optional bool device_show_low_disk_space_notification = 1; +} + +// Setting that controls whether all Family Link accounts are allowed on the +// device additionally to the accounts listed in UserAllowlistProto. +message DeviceFamilyLinkAccountsAllowedProto { + optional bool family_link_accounts_allowed = 1 [default = false]; +} + +// Setting that controls whether ARC data snapshotting is enabled for the device +// and time intervals of updating ARC data snapshot. +message DeviceArcDataSnapshotHoursProto { + // This is a JSON string, for details see + // "DeviceArcDataSnapshotHours" in policy_template.json + optional string arc_data_snapshot_hours = 1; +} + +// Setting that controls whether system-wide trace collection using the Perfetto +// system tracing service is allowed. +message DeviceSystemWideTracingEnabledProto { + optional bool enabled = 1 [default = false]; +} + +// Setting that controls whether data access is enabled for Thunderbolt/USB4 +// peripherals. This proto is no longer being used, please use +// DevicePciPeripheralDataAccessEnabledProtoV2. +message DevicePciPeripheralDataAccessEnabledProto { + optional bool enabled = 1 [default = false]; +} + +// Setting that controls whether data access is enabled for Thunderbolt/USB4 +// peripherals. This replaces DevicePciPeripheralDataAccessEnabledProto. Used +// only for the associated CrosSetting. +message DevicePciPeripheralDataAccessEnabledProtoV2 { + optional bool enabled = 1; +} + +// Setting that controls whether Borealis will be allowed on the device. +message DeviceBorealisAllowedProto { + optional bool allowed = 1 [default = true]; +} + +message DeviceAllowedBluetoothServicesProto { + // Policy which controls which service UUID is available. + repeated string allowlist = 1; +} + +// Policy that controls whether packet captures will be allowed on the device. +message DeviceDebugPacketCaptureAllowedProto { + optional bool allowed = 1; +} + +// Settings that control when a device will reboot. The reboots are +// recurring. In order to disable scheduled reboots the policy must be +// removed. +message DeviceScheduledRebootProto { + // This is a JSON string, for details see "DeviceScheduledReboot" in + // policy_templates.json. + optional string device_scheduled_reboot_settings = 1; +} + +// Setting that controls whether restricted managed guest session is enabled on +// the device. +message DeviceRestrictedManagedGuestSessionEnabledProto { + // If this policy is set to true, it will forcefully override certain + // policies. If it's set to false or not set, then no policies will be + // overridden. + optional bool enabled = 1 [default = false]; +} + +// Setting that controls whether keyboard shortcuts mapping are consistent +// across all international keyboard layouts. +message DeviceI18nShortcutsEnabledProto { + optional bool enabled = 1 [default = true]; +} + +// reven board collects hardware data of the device to provide relevant updates. +// Setting that controls whether device hardware data can be also used for other +// purposes. +message RevenDeviceHWDataUsageEnabledProto { + optional bool hardware_data_usage_enabled = 1 [default = false]; +} + +// Controls whether Login WebUI will be explicitly loaded on start. +// Overrides EnableLazyLoginWebUILoading feature. +message DeviceLoginScreenWebUILazyLoadingProto { + optional bool enabled = 1 [default = false]; +} + +// Setting that controls different configurations for the Encrypted Reporting +// Pipeline. +message EncryptedReportingPipelineConfigurationProto { + // Controls overall functioning of Encrypted Reporting Pipeline: setting it to + // false would disable the pipeline on a device + optional bool enabled = 1 [default = true]; +} + +message ChromeDeviceSettingsProto { + reserved 61, 90; + optional DevicePolicyRefreshRateProto device_policy_refresh_rate = 1; + optional UserWhitelistProto user_whitelist = 2; + optional GuestModeEnabledProto guest_mode_enabled = 3; + optional OBSOLETE_DeviceProxySettingsProto device_proxy_settings = 4 + [deprecated = true]; + optional CameraEnabledProto camera_enabled = 5; + optional ShowUserNamesOnSigninProto show_user_names = 6; + optional DataRoamingEnabledProto data_roaming_enabled = 7; + optional AllowNewUsersProto allow_new_users = 8; + optional MetricsEnabledProto metrics_enabled = 9; + optional ReleaseChannelProto release_channel = 10; + optional DeviceOpenNetworkConfigurationProto open_network_configuration = 11; + optional DeviceReportingProto device_reporting = 12; + optional EphemeralUsersEnabledProto ephemeral_users_enabled = 13; + optional OBSOLETE_AppPackProto app_pack = 14 [deprecated = true]; + optional OBSOLETE_ForcedLogoutTimeoutsProto forced_logout_timeouts = 15 + [deprecated = true]; + optional OBSOLETE_ScreenSaverProto login_screen_saver = 16 + [deprecated = true]; + optional AutoUpdateSettingsProto auto_update_settings = 17; + optional OBSOLETE_StartUpUrlsProto start_up_urls = 18 [deprecated = true]; + optional OBSOLETE_PinnedAppsProto pinned_apps = 19 [deprecated = true]; + optional SystemTimezoneProto system_timezone = 20; + optional DeviceLocalAccountsProto device_local_accounts = 21; + optional AllowRedeemChromeOsRegistrationOffersProto allow_redeem_offers = 22; + optional FeatureFlagsProto feature_flags = 23; + optional UptimeLimitProto uptime_limit = 24; + optional VariationsParameterProto variations_parameter = 25; + optional AttestationSettingsProto attestation_settings = 26; + optional AccessibilitySettingsProto accessibility_settings = 27; + optional OBSOLETE_SupervisedUsersSettingsProto supervised_users_settings = 28 + [deprecated = true]; + optional LoginScreenPowerManagementProto login_screen_power_management = 29; + optional SystemUse24HourClockProto use_24hour_clock = 30; + optional AutoCleanupSettigsProto auto_clean_up_settings = 31; + optional SystemSettingsProto system_settings = 32; + optional SAMLSettingsProto saml_settings = 33; + optional RebootOnShutdownProto reboot_on_shutdown = 34; + optional DeviceHeartbeatSettingsProto device_heartbeat_settings = 35; + optional ExtensionCacheSizeProto extension_cache_size = 36; + optional LoginScreenDomainAutoCompleteProto + login_screen_domain_auto_complete = 37; + optional DeviceLogUploadSettingsProto device_log_upload_settings = 38; + optional DisplayRotationDefaultProto display_rotation_default = 39; + optional AllowKioskAppControlChromeVersionProto + allow_kiosk_app_control_chrome_version = 40; + optional LoginAuthenticationBehaviorProto login_authentication_behavior = 41; + optional UsbDetachableWhitelistProto usb_detachable_whitelist = 42; + optional AllowBluetoothProto allow_bluetooth = 43; + optional DeviceQuirksDownloadEnabledProto quirks_download_enabled = 44; + optional LoginVideoCaptureAllowedUrlsProto login_video_capture_allowed_urls = + 45; + optional DeviceLoginScreenExtensionsProto device_login_screen_extensions = 46; + optional NetworkThrottlingEnabledProto network_throttling = 47; + optional DeviceWallpaperImageProto device_wallpaper_image = 48; + optional LoginScreenLocalesProto login_screen_locales = 49; + optional LoginScreenInputMethodsProto login_screen_input_methods = 50; + optional DeviceEcryptfsMigrationStrategyProto + device_ecryptfs_migration_strategy = 51 [deprecated = true]; + optional DeviceSecondFactorAuthenticationProto + device_second_factor_authentication = 52; + optional CastReceiverNameProto cast_receiver_name = 53; + optional DeviceOffHoursProto device_off_hours = 54; + optional DeviceNativePrintersProto native_device_printers = 55; + optional DeviceNativePrintersAccessModeProto + native_device_printers_access_mode = 56; + optional DeviceNativePrintersBlacklistProto native_device_printers_blacklist = + 57; + optional DeviceNativePrintersWhitelistProto native_device_printers_whitelist = + 58; + optional TPMFirmwareUpdateSettingsProto tpm_firmware_update_settings = 59; + optional OBSOLETE_MinimumRequiredVersionProto minimum_required_version = 60 + [deprecated = true]; + optional DeviceLoginScreenAutoSelectCertificateForUrls + device_login_screen_auto_select_certificate_for_urls = 62; + optional UnaffiliatedArcAllowedProto unaffiliated_arc_allowed = 63; + optional NetworkHostnameProto network_hostname = 64; + optional DeviceKerberosEncryptionTypesProto device_kerberos_encryption_types = + 65; + optional DeviceUserPolicyLoopbackProcessingModeProto + device_user_policy_loopback_processing_mode = 66; + optional OBSOLETE_DeviceLoginScreenIsolateOriginsProto + device_login_screen_isolate_origins = 67 [deprecated = true]; + optional OBSOLETE_DeviceLoginScreenSitePerProcessProto + device_login_screen_site_per_process = 68 [deprecated = true]; + optional VirtualMachinesAllowedProto virtual_machines_allowed = 69; + optional DeviceMachinePasswordChangeRateProto + device_machine_password_change_rate = 70; + optional SamlLoginAuthenticationTypeProto saml_login_authentication_type = 71; + optional DeviceUnaffiliatedCrostiniAllowedProto + device_unaffiliated_crostini_allowed = 72; + optional DeviceWiFiFastTransitionEnabledProto + device_wifi_fast_transition_enabled = 73; + optional DeviceDisplayResolutionProto device_display_resolution = 74; + optional PluginVmAllowedProto plugin_vm_allowed = 75; + optional DeviceGpoCacheLifetimeProto device_gpo_cache_lifetime = 76; + optional DeviceAuthDataCacheLifetimeProto device_auth_data_cache_lifetime = + 77; + optional PluginVmLicenseKeyProto plugin_vm_license_key = 78; + optional DeviceRebootOnUserSignoutProto device_reboot_on_user_signout = 79; + optional DeviceWilcoDtcAllowedProto device_wilco_dtc_allowed = 80; + optional DeviceWilcoDtcConfigurationProto device_wilco_dtc_configuration = 81; + optional DeviceWiFiAllowedProto device_wifi_allowed = 82; + optional DevicePowerPeakShiftProto device_power_peak_shift = 83; + optional DeviceBootOnAcProto device_boot_on_ac = 84; + optional DeviceDockMacAddressSourceProto device_dock_mac_address_source = 85; + optional DeviceAdvancedBatteryChargeModeProto + device_advanced_battery_charge_mode = 86; + optional DeviceBatteryChargeModeProto device_battery_charge_mode = 87; + optional DeviceUsbPowerShareProto device_usb_power_share = 88; + optional DeviceScheduledUpdateCheckProto device_scheduled_update_check = 89; + optional DevicePowerwashAllowedProto device_powerwash_allowed = 91; + optional DeviceLoginScreenWebUsbAllowDevicesForUrlsProto + device_login_screen_webusb_allow_devices_for_urls = 92; + optional BooleanPolicyProto device_login_screen_system_info_enforced = 93; + optional StringListPolicyProto device_web_based_attestation_allowed_urls = 94; + optional BooleanPolicyProto device_show_numeric_keyboard_for_password = 95; + optional BooleanPolicyProto login_screen_primary_mouse_button_switch = 96; + optional StringPolicyProto device_minimum_version = 97; + optional SystemProxySettingsProto system_proxy_settings = 98; + optional IntegerPolicyProto device_chrome_variations_type = 99; + optional DeviceLoginScreenPrivacyScreenEnabledProto + device_login_screen_privacy_screen_enabled = 100; + optional RequiredClientCertificateForDeviceProto + required_client_certificate_for_device = 101; + optional DeviceCrostiniArcAdbSideloadingAllowedProto + device_crostini_arc_adb_sideloading_allowed = 102; + optional StringPolicyProto device_minimum_version_aue_message = 103; + optional ManagedGuestSessionPrivacyWarningsProto + managed_guest_session_privacy_warnings = 104; + optional DeviceExternalPrintServersProto external_print_servers = 105; + optional DeviceExternalPrintServersAllowlistProto + external_print_servers_allowlist = 106; + optional DevicePrintersAccessModeProto device_printers_access_mode = 107; + optional DevicePrintersBlocklistProto device_printers_blocklist = 108; + optional DevicePrintersAllowlistProto device_printers_allowlist = 109; + optional DevicePrintersProto device_printers = 110; + optional DeviceShowLowDiskSpaceNotificationProto + device_show_low_disk_space_notification = 111; + optional UserAllowlistProto user_allowlist = 112; + optional UsbDetachableAllowlistProto usb_detachable_allowlist = 113; + optional DeviceFamilyLinkAccountsAllowedProto family_link_accounts_allowed = + 114; + optional DeviceArcDataSnapshotHoursProto arc_data_snapshot_hours = 115; + optional BooleanPolicyProto device_allow_mgs_to_store_display_properties = + 116; + optional DeviceSystemWideTracingEnabledProto + device_system_wide_tracing_enabled = 117; + optional DevicePciPeripheralDataAccessEnabledProto + device_pci_peripheral_data_access_enabled = 118; + optional DeviceBorealisAllowedProto device_borealis_allowed = 119; + optional DeviceAllowedBluetoothServicesProto + device_allowed_bluetooth_services = 120; + optional DeviceDebugPacketCaptureAllowedProto + device_debug_packet_capture_allowed = 121; + optional DeviceScheduledRebootProto device_scheduled_reboot = 122; + optional DevicePciPeripheralDataAccessEnabledProtoV2 + device_pci_peripheral_data_access_enabled_v2 = 123; + optional DeviceRestrictedManagedGuestSessionEnabledProto + device_restricted_managed_guest_session_enabled = 124; + optional HostnameUserConfigurableProto hostname_user_configurable = 125; + optional BooleanPolicyProto + login_screen_prompt_on_multiple_matching_certificates = 126; + optional BooleanPolicyProto kiosk_crx_manifest_update_url_ignored = 127; + optional DeviceI18nShortcutsEnabledProto device_i18n_shortcuts_enabled = 128; + optional BooleanPolicyProto chromad_to_cloud_migration_enabled = 129; + optional RevenDeviceHWDataUsageEnabledProto hardware_data_usage_enabled = 130; + optional DeviceLoginScreenWebUILazyLoadingProto login_web_ui_lazy_loading = + 131; + optional DeviceKeylockerForStorageEncryptionEnabledProto + keylocker_for_storage_encryption_enabled = 132; + optional BooleanPolicyProto device_run_automatic_cleanup_on_login = 133; + optional EncryptedReportingPipelineConfigurationProto + device_encrypted_reporting_pipeline_enabled = 134; +} |