Add item group monitoring data type framework

Include supported data types for item groups:
--Start event trigger
--Signal event trigger
--A countAtOrAbove condition
--A log_error action

Change-Id: I1ae5ba60e4d9c06155885d52d98a44b31fd73207
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
diff --git a/src/data_types.hpp b/src/data_types.hpp
new file mode 100644
index 0000000..49406ea
--- /dev/null
+++ b/src/data_types.hpp
@@ -0,0 +1,29 @@
+#pragma once
+
+#include <functional>
+#include <sdbusplus/bus.hpp>
+#include <sdbusplus/message.hpp>
+
+namespace phosphor
+{
+namespace dbus
+{
+namespace monitoring
+{
+
+class Monitor;
+
+using Value = int64_t;
+
+using Group = std::vector<std::tuple<std::string, Value>>;
+
+using Condition = std::function<bool(sdbusplus::bus::bus&,
+                                     sdbusplus::message::message&,
+                                     Monitor&)>;
+
+using Action = std::function<void(sdbusplus::bus::bus&,
+                                  Monitor&)>;
+
+} // namespace monitoring
+} // namespace dbus
+} // namespace phosphor