// Copyright 2017 The Chromium OS 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 login_manager; // Specifies the account type that the |account_id| in PolicyDescriptor // references. enum PolicyAccountType { // |account_id| must be empty. Policy is stored in a device-wide root-owned // location. ACCOUNT_TYPE_DEVICE = 0; // |account_id| references a user account. Policy is stored on the user's // cryptohome. ACCOUNT_TYPE_USER = 1; // |account_id| references a user account where the user session hasn't been // added to Session Manager yet. Special case to retrieve user policy on the // login screen. ACCOUNT_TYPE_SESSIONLESS_USER = 2; // |account_id| references a device local account. Policy is stored in a // device-wide root-owned location in a folder that depends on |account_id|. ACCOUNT_TYPE_DEVICE_LOCAL_ACCOUNT = 3; // Next ID to use: 4 }; // Within a given account, policies are namespaced by a // (|domain|, |component_id|) pair in PolicyDescriptor. // The meaning of the |component_id| depends on the domain, see below. enum PolicyDomain { // Domain for Chrome policies. |component_id| must be empty. POLICY_DOMAIN_CHROME = 0; // Domain for policies for regular Chrome extensions. |component_id| must be // equal to the extension ID. POLICY_DOMAIN_EXTENSIONS = 1; // Domain for policies for Chrome extensions running under the Chrome OS // signin profile. |component_id| must be equal to the extension ID. POLICY_DOMAIN_SIGNIN_EXTENSIONS = 2; // Next ID to use: 3 }; // Descriptor for policy blobs to give SessionManager's StorePolicy*Ex and // RetrievePolicyEx enough context to decide how to store policy. message PolicyDescriptor { // The pair (|account_type|, |account_id|) determines the account for policy // storage. optional PolicyAccountType account_type = 1; // The meaning of |account_id| depends on |account_type|, see // PolicyAccountType. optional string account_id = 2; // The pair (|domain|, |component_id|) determines the namespace for policy // storage. optional PolicyDomain domain = 3; // The meaning of |component_id| depends on |domain|, see PolicyDomain. optional string component_id = 4; // Next ID to use: 5 }