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/SoftShutdown.interface.yaml b/xyz/openbmc_project/Sensor/Threshold/SoftShutdown.interface.yaml
new file mode 100644
index 0000000..24a4d60
--- /dev/null
+++ b/xyz/openbmc_project/Sensor/Threshold/SoftShutdown.interface.yaml
@@ -0,0 +1,46 @@
+description: >
+    Implement to provide soft shutdown class sensor thresholds.  Objects
+    implementing Sensor.Threshold.Shutdown 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.SoftShutdown must
+    also implement Sensor.Value.
+
+properties:
+    - name: SoftShutdownHigh
+      type: double
+      default: NaN
+      description: >
+          The upper bound of the soft shutdown threshold.  A value of 'NaN' is
+          used to indicate there is no threshold of this type.
+    - name: SoftShutdownLow
+      type: double
+      default: NaN
+      description: >
+          The lower bound of the soft shutdown threshold.  A value of 'NaN' is
+          used to indicate there is no threshold of this type.
+    - name: SoftShutdownAlarmHigh
+      type: boolean
+      description: >
+          True if the sensor value has exceeded the defined bound.
+          False if the sensor value has not exceeded the defined bound.
+
+          SoftShutdownAlarmHigh may be set to False to clear an alarm condition.
+          The behavior of setting SoftShutdownAlarmHigh to True is undefined.
+    - name: SoftShutdownAlarmLow
+      type: boolean
+      description: >
+          True if the sensor value has exceeded the defined bound.
+          False if the sensor value has not exceeded the defined bound.
+
+          SoftShutdownAlarmLow may be set to False to clear an alarm condition.
+          The behavior of setting SoftShutdownAlarmLow to True is undefined.