Add fan redundancy interface

Add object to describe whether a group of fans is
in a redundant state. BMCs typically monitor fan
states and allow a certain number of fans to be
in an error condition before taking action. This
object can be monitored to determine when to take
actions such as boosting fans.

Tested-by: Ran CI

Change-Id: Id91bfdfcb7e49b933a0d6f16c63fd806e009d62f
Signed-off-by: James Feist <james.feist@linux.intel.com>
diff --git a/xyz/openbmc_project/Control/FanRedundancy.interface.yaml b/xyz/openbmc_project/Control/FanRedundancy.interface.yaml
new file mode 100644
index 0000000..50ae5bc
--- /dev/null
+++ b/xyz/openbmc_project/Control/FanRedundancy.interface.yaml
@@ -0,0 +1,37 @@
+description: >
+    An interface to set whether fans are redundant.
+properties:
+    - name: AllowedFailures
+      type: byte
+      flags:
+        - const
+      description: >
+          Number of fans in error state before redundancy is lost.
+    - name: Collection
+      type: array[path]
+      flags:
+        - const
+      description: >
+          The group of fans tracked by this redundancy object.
+    - name: Status
+      type: enum[self.State]
+      flags:
+        - const
+      description: >
+          The current redundancy status.
+
+enumerations:
+    - name: State
+      description: >
+          Possible redundancy states.
+      values:
+        - name: Full
+          description: >
+              System is in a fully redundant state.
+        - name: Degraded
+          description: >
+              Redundancy is in a degraded state.
+        - name: Failed
+          description: >
+              System has lost redundancy.
+