Implement the update engine portion for new enterprise policies.

Enterprises need the ability to stop the auto updates and pin clients
to a given target version. This CL adds support for these features in
the update_engine.

BUG=27307: Implement StopAutoUpdate based on enterprise policy
TEST=Added new unit tests, manually tested all cases on ZGB.
CQ-DEPEND=I523c3f67e0cb07fd24744dc0a30382ff2fe2128a
Change-Id: Id576401afc6d2c93f0e9ece7c6c0ddcf4b1bc00d
Reviewed-on: https://gerrit.chromium.org/gerrit/17867
Commit-Ready: Jay Srinivasan <jaysri@chromium.org>
Reviewed-by: Jay Srinivasan <jaysri@chromium.org>
Tested-by: Jay Srinivasan <jaysri@chromium.org>
diff --git a/omaha_request_params.h b/omaha_request_params.h
index da091c0..482a8b7 100644
--- a/omaha_request_params.h
+++ b/omaha_request_params.h
@@ -18,8 +18,14 @@
 // This struct encapsulates the data Omaha gets for the request.
 // These strings in this struct should not be XML escaped.
 struct OmahaRequestParams {
+
   OmahaRequestParams()
-      : os_platform(kOsPlatform), os_version(kOsVersion), app_id(kAppId) {}
+      : os_platform(kOsPlatform),
+        os_version(kOsVersion),
+        app_id(kAppId),
+        delta_okay(true),
+        update_disabled(false) {}
+
   OmahaRequestParams(const std::string& in_os_platform,
                      const std::string& in_os_version,
                      const std::string& in_os_sp,
@@ -29,8 +35,10 @@
                      const std::string& in_app_lang,
                      const std::string& in_app_track,
                      const std::string& in_hardware_class,
-                     const bool in_delta_okay,
-                     const std::string& in_update_url)
+                     bool in_delta_okay,
+                     const std::string& in_update_url,
+                     bool in_update_disabled,
+                     const std::string& in_target_version_prefix)
       : os_platform(in_os_platform),
         os_version(in_os_version),
         os_sp(in_os_sp),
@@ -41,7 +49,9 @@
         app_track(in_app_track),
         hardware_class(in_hardware_class),
         delta_okay(in_delta_okay),
-        update_url(in_update_url) {}
+        update_url(in_update_url),
+        update_disabled(in_update_disabled),
+        target_version_prefix(in_target_version_prefix) {}
 
   std::string os_platform;
   std::string os_version;
@@ -58,6 +68,9 @@
 
   static const char kUpdateTrackKey[];
 
+  bool update_disabled;
+  std::string target_version_prefix;
+
   // Suggested defaults
   static const char* const kAppId;
   static const char* const kOsPlatform;