blob: 501bee7247063a3b31ec989bae66586868a81023 [file] [log] [blame]
// Copyright (c) 2012 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;
package enterprise_management;
message DevicePolicyRefreshRateProto {
// In milliseconds.
optional int64 device_policy_refresh_rate = 1;
}
message UserWhitelistProto {
repeated string user_whitelist = 1;
}
message AllowNewUsersProto {
// Determines whether we allow arbitrary users to log into the device.
// Should default to true.
// This interacts with the UserWhitelistProto as follows:
// allow_new_users | user_whitelist | user_whitelist_size | anyone can log in
//-----------------+----------------+---------------------+------------------
// present, true | not present | N/A | Yes
//-----------------+----------------+---------------------+------------------
// present, true | present | >= 0 | Yes
//-----------------+----------------+---------------------+------------------
// present, false | not present | N/A | (Broken) Yes
//-----------------+----------------+---------------------+------------------
// present, false | present | 0 | (Broken) Yes
//-----------------+----------------+---------------------+------------------
// present, false | present | > 0 | No, W/L enforced
//-----------------+----------------+---------------------+------------------
// not present | not present | N/A | Yes
//-----------------+----------------+---------------------+------------------
// not present | present | 0 | Yes
//-----------------+----------------+---------------------+------------------
// not present | present | > 0 | No, W/L enforced
//-----------------+----------------+---------------------+------------------
optional bool allow_new_users = 1;
}
message GuestModeEnabledProto {
// Determines if guests are allowed to log in to the device.
// Should default to true.
optional bool guest_mode_enabled = 1;
}
message ShowUserNamesOnSigninProto {
// Determines if we show pods for existing users on the sign in screen.
// Should default to true.
optional bool show_user_names = 1;
}
message DataRoamingEnabledProto {
// Determines if cellular data roaming is enabled. Should default to false.
optional bool data_roaming_enabled = 1;
}
message DeviceProxySettingsProto {
// One of "direct", "auto_detect", "pac_script", "fixed_servers", "system"
optional string proxy_mode = 1;
optional string proxy_server = 2;
optional string proxy_pac_url = 3;
optional string proxy_bypass_list = 4;
}
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;
// If |user_delegated| is set to true and the |release_channel| field is not
// set or left empty, the user can select the channel. If the
// |release_channel| is specified it will always override users choice!
optional bool release_channel_delegated = 2;
}
message DeviceOpenNetworkConfigurationProto {
// The network configuration blob. This is a JSON string as specified by ONC.
optional string open_network_configuration = 1;
}
// Policies to turn on portions of the device status reports.
message DeviceReportingProto {
optional bool report_version_info = 1;
optional bool report_activity_times = 2;
optional bool report_boot_mode = 3;
}
message EphemeralUsersEnabledProto {
// Determines whether users should be treated as ephemeral.
optional bool ephemeral_users_enabled = 1;
}
// Details of an extension to install as part of the AppPack.
message AppPackEntryProto {
optional string extension_id = 1;
optional string update_url = 2;
optional bool online_only = 3;
}
message AppPackProto {
// List of extensions to install as part of the AppPack.
repeated AppPackEntryProto app_pack = 1;
}
message 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 idle_logout_timeout = 1;
// 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 idle_logout_warning_duration = 2;
}
message 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 KIOSK mode.
optional string screen_saver_extension_id = 1;
// 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 screen_saver_timeout = 2;
}
// Enterprise controls for auto-update behavior of Chrome OS.
message AutoUpdateSettingsProto {
// 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 a 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, it will remain on the higher version as we
// don't support rollback yet. 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;
}
message StartUpUrlsProto {
// Specifies the URLs to be loaded on login to the anonymous account used if
// the device is in KIOSK mode.
repeated string start_up_urls = 1;
}
message ChromeDeviceSettingsProto {
optional DevicePolicyRefreshRateProto device_policy_refresh_rate = 1;
optional UserWhitelistProto user_whitelist = 2;
optional GuestModeEnabledProto guest_mode_enabled = 3;
optional DeviceProxySettingsProto device_proxy_settings = 4;
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 AppPackProto app_pack = 14;
optional ForcedLogoutTimeoutsProto forced_logout_timeouts = 15;
optional ScreenSaverProto login_screen_saver = 16;
optional AutoUpdateSettingsProto auto_update_settings = 17;
optional StartUpUrlsProto start_up_urls = 18;
}