thresholds: Add 2 new threshold interfaces

Add HardShutdown and SoftShutdown threshold interfaces.  These could be
used when a hard shutdown or soft shutdown would be necessary based on a
sensor value and the existing warning and critical thresholds are
already being used for other actions on that sensor.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I81c620cd46503903e36261502cdeffa35cd7cbe5
diff --git a/xyz/openbmc_project/Sensor/Threshold/HardShutdown.interface.yaml b/xyz/openbmc_project/Sensor/Threshold/HardShutdown.interface.yaml
new file mode 100644
index 0000000..bf6c4fd
--- /dev/null
+++ b/xyz/openbmc_project/Sensor/Threshold/HardShutdown.interface.yaml
@@ -0,0 +1,47 @@
+description: >
+
+    Implement to provide hard shutdown class sensor thresholds.  Objects
+    implementing Sensor.Threshold.HardShutdown must be instantiated in the
+    correct hierarchy within the sensors namespace.  The following sensor
+    hierarchies are recognized:
+      temperature
+      fan_tach
+      voltage
+      altitude
+      current
+      power
+      energy
+
+
+    Additionally, any object implementing Sensor.Threshold.HardShutdown must
+    also implement Sensor.Value.
+
+properties:
+    - name: HardShutdownHigh
+      type: double
+      default: NaN
+      description: >
+          The upper bound of the shutdown threshold.  A value of 'NaN' is used
+          to indicate there is no threshold of this type.
+    - name: HardShutdownLow
+      type: double
+      default: NaN
+      description: >
+          The lower bound of the shutdown threshold.  A value of 'NaN' is used
+          to indicate there is no threshold of this type.
+    - name: HardShutdownAlarmHigh
+      type: boolean
+      description: >
+          True if the sensor value has exceeded the defined bound.
+          False if the sensor value has not exceeded the defined bound.
+
+          HardShutdownAlarmHigh may be set to False to clear an alarm condition.
+          The behavior of setting HardShutdownAlarmHigh to True is undefined.
+    - name: HardShutdownAlarmLow
+      type: boolean
+      description: >
+          True if the sensor value has exceeded the defined bound.
+          False if the sensor value has not exceeded the defined bound.
+
+          HardShutdownAlarmLow may be set to False to clear an alarm condition.
+          The behavior of setting HardShutdownAlarmLow to True is undefined.