diff --git a/buffet/commands/prop_types.cc b/buffet/commands/prop_types.cc
index 694d74e..f4de059 100644
--- a/buffet/commands/prop_types.cc
+++ b/buffet/commands/prop_types.cc
@@ -11,6 +11,7 @@
 #include <base/json/json_writer.h>
 #include <base/logging.h>
 #include <base/values.h>
+#include <chromeos/any.h>
 #include <chromeos/string_utils.h>
 
 #include "buffet/commands/object_schema.h"
@@ -149,7 +150,7 @@
   return val->FromJson(value, error) && ValidateConstraints(*val, error);
 }
 
-bool PropType::ValidateValue(const Any& value,
+bool PropType::ValidateValue(const chromeos::Any& value,
                              chromeos::ErrorPtr* error) const {
   std::shared_ptr<PropValue> val = CreateValue(value);
   CHECK(val) << "Failed to create value object";
diff --git a/buffet/commands/prop_types.h b/buffet/commands/prop_types.h
index 506c822..86a2960 100644
--- a/buffet/commands/prop_types.h
+++ b/buffet/commands/prop_types.h
@@ -13,6 +13,7 @@
 #include <utility>
 #include <vector>
 
+#include <chromeos/any.h>
 #include <chromeos/error.h>
 
 #include "buffet/commands/prop_constraints.h"
@@ -81,7 +82,8 @@
   // Creates an instance of associated value object, using the parameter
   // type as a factory class.
   virtual std::shared_ptr<PropValue> CreateValue() const = 0;
-  virtual std::shared_ptr<PropValue> CreateValue(const Any& val) const = 0;
+  virtual std::shared_ptr<PropValue> CreateValue(
+      const chromeos::Any& val) const = 0;
 
   // Saves the parameter type definition as a JSON object.
   // If |full_schema| is set to true, the full type definition is saved,
@@ -122,7 +124,8 @@
   bool ValidateValue(const base::Value* value, chromeos::ErrorPtr* error) const;
 
   // Similar to the above method, but uses Any as the value container.
-  bool ValidateValue(const Any& value, chromeos::ErrorPtr* error) const;
+  bool ValidateValue(const chromeos::Any& value,
+                     chromeos::ErrorPtr* error) const;
 
   // Additional helper static methods to help with converting a type enum
   // value into a string and back.
@@ -186,7 +189,8 @@
   std::shared_ptr<PropValue> CreateValue() const override {
     return std::make_shared<Value>(this);
   }
-  std::shared_ptr<PropValue> CreateValue(const Any& v) const override {
+  std::shared_ptr<PropValue> CreateValue(
+      const chromeos::Any& v) const override {
     auto value = std::make_shared<Value>(this);
     value->SetValue(v.Get<T>());
     return std::move(value);
diff --git a/buffet/commands/prop_values.h b/buffet/commands/prop_values.h
index f568dd8..106ab1d 100644
--- a/buffet/commands/prop_values.h
+++ b/buffet/commands/prop_values.h
@@ -9,9 +9,9 @@
 #include <memory>
 #include <string>
 
+#include <chromeos/any.h>
 #include <chromeos/error.h>
 
-#include "buffet/any.h"
 #include "buffet/commands/schema_utils.h"
 
 namespace base {
@@ -103,7 +103,7 @@
                         chromeos::ErrorPtr* error) = 0;
 
   // Returns the contained C++ value as Any.
-  virtual Any GetValueAsAny() const = 0;
+  virtual chromeos::Any GetValueAsAny() const = 0;
 
   // Return the type definition of this value.
   const PropType* GetPropType() const { return type_; }
@@ -149,7 +149,7 @@
   }
 
   // Helper methods to get and set the C++ representation of the value.
-  Any GetValueAsAny() const override { return value_; }
+  chromeos::Any GetValueAsAny() const override { return value_; }
   const T& GetValue() const { return value_; }
   void SetValue(T value) { value_ = std::move(value); }
 
