watchdog: Support setting an action

The IPMI spec defines actions which can be set at runtime that define
what action the watchdog will take when it expires. With this change our
watchdog daemon can be dynamically reconfigured to execute a target that
maps to the defined action.

The current list of actions maps directly from the IPMI spec. We don't
require that the list strictly adheres to the list in the spec, but this
is a good starting point since they are generic host actions. A commit
to phosphor-watchog will accompany this change in order to respect the
actions defined in this interface. This change defaults the action to
HardReset, which will ensure the behavior is consistent with previous
behavior regardless of updating the phosphor-host-ipmid.

Change-Id: I7b293394326652b292b4bd23950a7f947ece8306
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/xyz/openbmc_project/State/Watchdog.interface.yaml b/xyz/openbmc_project/State/Watchdog.interface.yaml
index e48ac4b..960b2b0 100644
--- a/xyz/openbmc_project/State/Watchdog.interface.yaml
+++ b/xyz/openbmc_project/State/Watchdog.interface.yaml
@@ -12,6 +12,11 @@
       description: >
           The watchdog is enabled or not.
       default: false
+    - name: ExpireAction
+      type: enum[self.Action]
+      description: >
+          The action the watchdog should perform when it expires.
+      default: 'HardReset'
     - name: Interval
       type: uint64
       description: >
@@ -24,4 +29,22 @@
           Setting this property can re-arm the watchdog.
       default: 0
 
+enumerations:
+   - name: Action
+     description: >
+       The type of action to perform.
+     values:
+       - name: 'None'
+         description: >
+           Do nothing.
+       - name: 'HardReset'
+         description: >
+           Perform a reset of the system.
+       - name: 'PowerOff'
+         description: >
+           Perform a power off of the system.
+       - name: 'PowerCycle'
+         description: >
+           Perform a power cycle of the system.
+
 # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4