diff --git a/elog-errors.hpp b/elog-errors.hpp
new file mode 100644
index 0000000..aa8d581
--- /dev/null
+++ b/elog-errors.hpp
@@ -0,0 +1,116 @@
+// This file was autogenerated.  Do not edit!
+// See elog-gen.py for more details
+#pragma once
+
+#include <string>
+#include <tuple>
+#include <type_traits>
+#include <sdbusplus/exception.hpp>
+#include <phosphor-logging/log.hpp>
+#include <phosphor-logging/elog.hpp>
+
+namespace sdbusplus
+{
+namespace xyz
+{
+namespace openbmc_project
+{
+namespace Time
+{
+namespace Internal
+{
+namespace Error
+{
+    struct MethodError;
+} // namespace Error
+} // namespace Internal
+} // namespace Time
+} // namespace openbmc_project
+} // namespace xyz
+} // namespace sdbusplus
+
+
+namespace phosphor
+{
+
+namespace logging
+{
+
+namespace xyz
+{
+namespace openbmc_project
+{
+namespace Time
+{
+namespace Internal
+{
+namespace _MethodError
+{
+
+struct METHOD_NAME
+{
+    static constexpr auto str = "METHOD_NAME=%s";
+    static constexpr auto str_short = "METHOD_NAME";
+    using type = std::tuple<std::decay_t<decltype(str)>,const char*>;
+    explicit constexpr METHOD_NAME(const char* a) : _entry(entry(str, a)) {};
+    type _entry;
+};
+struct PATH
+{
+    static constexpr auto str = "PATH=%s";
+    static constexpr auto str_short = "PATH";
+    using type = std::tuple<std::decay_t<decltype(str)>,const char*>;
+    explicit constexpr PATH(const char* a) : _entry(entry(str, a)) {};
+    type _entry;
+};
+struct INTERFACE
+{
+    static constexpr auto str = "INTERFACE=%s";
+    static constexpr auto str_short = "INTERFACE";
+    using type = std::tuple<std::decay_t<decltype(str)>,const char*>;
+    explicit constexpr INTERFACE(const char* a) : _entry(entry(str, a)) {};
+    type _entry;
+};
+struct MISC
+{
+    static constexpr auto str = "MISC=%s";
+    static constexpr auto str_short = "MISC";
+    using type = std::tuple<std::decay_t<decltype(str)>,const char*>;
+    explicit constexpr MISC(const char* a) : _entry(entry(str, a)) {};
+    type _entry;
+};
+
+}  // namespace _MethodError
+
+struct MethodError
+{
+    static constexpr auto L = level::ERR;
+    using METHOD_NAME = _MethodError::METHOD_NAME;
+    using PATH = _MethodError::PATH;
+    using INTERFACE = _MethodError::INTERFACE;
+    using MISC = _MethodError::MISC;
+    using metadata_types = std::tuple<METHOD_NAME, PATH, INTERFACE, MISC>;
+
+};
+
+} // namespace Internal
+} // namespace Time
+} // namespace openbmc_project
+} // namespace xyz
+
+
+namespace details
+{
+
+template <>
+struct map_exception_type<sdbusplus::xyz::openbmc_project::Time::Internal::Error::MethodError>
+{
+    using type = xyz::openbmc_project::Time::Internal::MethodError;
+};
+
+}
+
+
+} // namespace logging
+
+} // namespace phosphor
