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 kValueRequestDeviceStateRetrieval[];
     38 POLICY_EXPORT extern const char kValueUserAffiliationManaged[];
     39 POLICY_EXPORT extern const char kValueUserAffiliationNone[];
     40 
     41 // Policy type strings for the policy_type field in PolicyFetchRequest.
     42 POLICY_EXPORT extern const char kChromeDevicePolicyType[];
     43 POLICY_EXPORT extern const char kChromeUserPolicyType[];
     44 POLICY_EXPORT extern const char kChromePublicAccountPolicyType[];
     45 POLICY_EXPORT extern const char kChromeExtensionPolicyType[];
     46 
     47 // These codes are sent in the |error_code| field of PolicyFetchResponse.
     48 enum PolicyFetchStatus {
     49   POLICY_FETCH_SUCCESS = 200,
     50   POLICY_FETCH_ERROR_NOT_FOUND = 902,
     51 };
     52 
     53 }  // namespace dm_protocol
     54 
     55 // The header used to transmit the policy ID for this client.
     56 POLICY_EXPORT extern const char kChromePolicyHeader[];
     57 
     58 // Information about the verification key used to verify that policy signing
     59 // keys are valid.
     60 POLICY_EXPORT std::string GetPolicyVerificationKey();
     61 POLICY_EXPORT extern const char kPolicyVerificationKeyHash[];
     62 
     63 // Describes the affiliation of a user w.r.t. the device owner.
     64 enum UserAffiliation {
     65   // User is on the same domain the device was registered with.
     66   USER_AFFILIATION_MANAGED,
     67   // No affiliation between device and user.
     68   USER_AFFILIATION_NONE,
     69 };
     70 
     71 // Status codes for communication errors with the device management service.
     72 enum DeviceManagementStatus {
     73   // All is good.
     74   DM_STATUS_SUCCESS,
     75   // Request payload invalid.
     76   DM_STATUS_REQUEST_INVALID,
     77   // The HTTP request failed.
     78   DM_STATUS_REQUEST_FAILED,
     79   // The server returned an error code that points to a temporary problem.
     80   DM_STATUS_TEMPORARY_UNAVAILABLE,
     81   // The HTTP request returned a non-success code.
     82   DM_STATUS_HTTP_STATUS_ERROR,
     83   // Response could not be decoded.
     84   DM_STATUS_RESPONSE_DECODING_ERROR,
     85   // Service error: Management not supported.
     86   DM_STATUS_SERVICE_MANAGEMENT_NOT_SUPPORTED,
     87   // Service error: Device not found.
     88   DM_STATUS_SERVICE_DEVICE_NOT_FOUND,
     89   // Service error: Device token invalid.
     90   DM_STATUS_SERVICE_MANAGEMENT_TOKEN_INVALID,
     91   // Service error: Activation pending.
     92   DM_STATUS_SERVICE_ACTIVATION_PENDING,
     93   // Service error: The serial number is not valid or not known to the server.
     94   DM_STATUS_SERVICE_INVALID_SERIAL_NUMBER,
     95   // Service error: The device id used for registration is already taken.
     96   DM_STATUS_SERVICE_DEVICE_ID_CONFLICT,
     97   // Service error: The licenses have expired or have been exhausted.
     98   DM_STATUS_SERVICE_MISSING_LICENSES,
     99   // Service error: The administrator has deprovisioned this client.
    100   DM_STATUS_SERVICE_DEPROVISIONED,
    101   // Service error: Device registration for the wrong domain.
    102   DM_STATUS_SERVICE_DOMAIN_MISMATCH,
    103   // Service error: Policy not found. Error code defined by the DM folks.
    104   DM_STATUS_SERVICE_POLICY_NOT_FOUND = 902,
    105 };
    106 
    107 // List of modes that the device can be locked into.
    108 enum DeviceMode {
    109   DEVICE_MODE_PENDING,         // The device mode is not yet available.
    110   DEVICE_MODE_NOT_SET,         // The device is not yet enrolled or owned.
    111   DEVICE_MODE_CONSUMER,        // The device is locally owned as consumer
    112                                // device.
    113   DEVICE_MODE_ENTERPRISE,      // The device is enrolled as an enterprise
    114                                // device.
    115   DEVICE_MODE_RETAIL_KIOSK,    // The device is enrolled as retail kiosk device.
    116   DEVICE_MODE_CONSUMER_KIOSK_AUTOLAUNCH,  // The device is locally owned as
    117                                           // consumer kiosk with ability to auto
    118                                           // launch a kiosk webapp.
    119 };
    120 
    121 // A pair that combines a policy fetch type and entity ID.
    122 typedef std::pair<std::string, std::string> PolicyNamespaceKey;
    123 
    124 // Returns the Chrome user policy type to use. This allows overridding the
    125 // default user policy type on Android and iOS for testing purposes.
    126 // TODO(joaodasilva): remove this once the server is ready.
    127 // http://crbug.com/248527
    128 POLICY_EXPORT const char* GetChromeUserPolicyType();
    129 
    130 }  // namespace policy
    131 
    132 #endif  // COMPONENTS_POLICY_CORE_COMMON_CLOUD_CLOUD_POLICY_CONSTANTS_H_
    133