Home | History | Annotate | Download | only in cloud
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef COMPONENTS_POLICY_CORE_COMMON_CLOUD_CLOUD_POLICY_CONSTANTS_H_
      6 #define COMPONENTS_POLICY_CORE_COMMON_CLOUD_CLOUD_POLICY_CONSTANTS_H_
      7 
      8 #include <string>
      9 #include <utility>
     10 
     11 #include "components/policy/policy_export.h"
     12 
     13 namespace policy {
     14 
     15 // Constants related to the device management protocol.
     16 namespace dm_protocol {
     17 
     18 // Name extern constants for URL query parameters.
     19 POLICY_EXPORT extern const char kParamAgent[];
     20 POLICY_EXPORT extern const char kParamAppType[];
     21 POLICY_EXPORT extern const char kParamDeviceID[];
     22 POLICY_EXPORT extern const char kParamDeviceType[];
     23 POLICY_EXPORT extern const char kParamOAuthToken[];
     24 POLICY_EXPORT extern const char kParamPlatform[];
     25 POLICY_EXPORT extern const char kParamRequest[];
     26 POLICY_EXPORT extern const char kParamUserAffiliation[];
     27 
     28 // String extern constants for the device and app type we report to the server.
     29 POLICY_EXPORT extern const char kValueAppType[];
     30 POLICY_EXPORT extern const char kValueDeviceType[];
     31 POLICY_EXPORT extern const char kValueRequestAutoEnrollment[];
     32 POLICY_EXPORT extern const char kValueRequestPolicy[];
     33 POLICY_EXPORT extern const char kValueRequestRegister[];
     34 POLICY_EXPORT extern const char kValueRequestApiAuthorization[];
     35 POLICY_EXPORT extern const char kValueRequestUnregister[];
     36 POLICY_EXPORT extern const char kValueRequestUploadCertificate[];
     37 POLICY_EXPORT extern const char kValueUserAffiliationManaged[];
     38 POLICY_EXPORT extern const char kValueUserAffiliationNone[];
     39 
     40 // Policy type strings for the policy_type field in PolicyFetchRequest.
     41 POLICY_EXPORT extern const char kChromeDevicePolicyType[];
     42 POLICY_EXPORT extern const char kChromeUserPolicyType[];
     43 POLICY_EXPORT extern const char kChromePublicAccountPolicyType[];
     44 POLICY_EXPORT extern const char kChromeExtensionPolicyType[];
     45 
     46 // These codes are sent in the |error_code| field of PolicyFetchResponse.
     47 enum PolicyFetchStatus {
     48   POLICY_FETCH_SUCCESS = 200,
     49   POLICY_FETCH_ERROR_NOT_FOUND = 902,
     50 };
     51 
     52 }  // namespace dm_protocol
     53 
     54 // Describes the affiliation of a user w.r.t. the device owner.
     55 enum UserAffiliation {
     56   // User is on the same domain the device was registered with.
     57   USER_AFFILIATION_MANAGED,
     58   // No affiliation between device and user.
     59   USER_AFFILIATION_NONE,
     60 };
     61 
     62 // Status codes for communication errors with the device management service.
     63 enum DeviceManagementStatus {
     64   // All is good.
     65   DM_STATUS_SUCCESS,
     66   // Request payload invalid.
     67   DM_STATUS_REQUEST_INVALID,
     68   // The HTTP request failed.
     69   DM_STATUS_REQUEST_FAILED,
     70   // The server returned an error code that points to a temporary problem.
     71   DM_STATUS_TEMPORARY_UNAVAILABLE,
     72   // The HTTP request returned a non-success code.
     73   DM_STATUS_HTTP_STATUS_ERROR,
     74   // Response could not be decoded.
     75   DM_STATUS_RESPONSE_DECODING_ERROR,
     76   // Service error: Management not supported.
     77   DM_STATUS_SERVICE_MANAGEMENT_NOT_SUPPORTED,
     78   // Service error: Device not found.
     79   DM_STATUS_SERVICE_DEVICE_NOT_FOUND,
     80   // Service error: Device token invalid.
     81   DM_STATUS_SERVICE_MANAGEMENT_TOKEN_INVALID,
     82   // Service error: Activation pending.
     83   DM_STATUS_SERVICE_ACTIVATION_PENDING,
     84   // Service error: The serial number is not valid or not known to the server.
     85   DM_STATUS_SERVICE_INVALID_SERIAL_NUMBER,
     86   // Service error: The device id used for registration is already taken.
     87   DM_STATUS_SERVICE_DEVICE_ID_CONFLICT,
     88   // Service error: The licenses have expired or have been exhausted.
     89   DM_STATUS_SERVICE_MISSING_LICENSES,
     90   // Service error: The administrator has deprovisioned this client.
     91   DM_STATUS_SERVICE_DEPROVISIONED,
     92   // Service error: Policy not found. Error code defined by the DM folks.
     93   DM_STATUS_SERVICE_POLICY_NOT_FOUND = 902,
     94 };
     95 
     96 // List of modes that the device can be locked into.
     97 enum DeviceMode {
     98   DEVICE_MODE_PENDING,         // The device mode is not yet available.
     99   DEVICE_MODE_NOT_SET,         // The device is not yet enrolled or owned.
    100   DEVICE_MODE_CONSUMER,        // The device is locally owned as consumer
    101                                // device.
    102   DEVICE_MODE_ENTERPRISE,      // The device is enrolled as an enterprise
    103                                // device.
    104   DEVICE_MODE_RETAIL_KIOSK,    // The device is enrolled as retail kiosk device.
    105   DEVICE_MODE_CONSUMER_KIOSK,  // The device is locally owned as consumer kiosk.
    106 };
    107 
    108 // A pair that combines a policy fetch type and entity ID.
    109 typedef std::pair<std::string, std::string> PolicyNamespaceKey;
    110 
    111 // Returns the Chrome user policy type to use. This allows overridding the
    112 // default user policy type on Android and iOS for testing purposes.
    113 // TODO(joaodasilva): remove this once the server is ready.
    114 // http://crbug.com/248527
    115 POLICY_EXPORT const char* GetChromeUserPolicyType();
    116 
    117 }  // namespace policy
    118 
    119 #endif  // COMPONENTS_POLICY_CORE_COMMON_CLOUD_CLOUD_POLICY_CONSTANTS_H_
    120