Software: add initial software-version mgmt

Change-Id: I3b50488b8383c595b4b41375ea0d62d62bdc0eed
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/xyz/openbmc_project/Software/RedundancyPriority.interface.yaml b/xyz/openbmc_project/Software/RedundancyPriority.interface.yaml
new file mode 100644
index 0000000..4f7ba27
--- /dev/null
+++ b/xyz/openbmc_project/Software/RedundancyPriority.interface.yaml
@@ -0,0 +1,23 @@
+description: >
+    The priority, for redundancy purposes, of the associated
+    xyz.openbmc_project.Software.Version.
+properties:
+    - name: Priority
+      type: uint8
+      description: >
+        The priority order specified for the associated Software.Version,
+        represented as a value between 0 (High) and 127 (Low).  Any value
+        above 127 has implementation-specific purpose.
+
+        Only one Software.Version, per associated device, may be at any
+        particular priority.  A requested priority change may cause other
+        Software.Versions to change priority.
+
+        A dual-sided redundancy model could be represented by two
+        Software.Version associations, one of which is at priority 0 and the
+        other at priority 1.  When a new image is Activated, the old
+        priority-1 association is deleted, the old priority-0 association
+        becomes priority-1, and the new image is assigned priority-0.
+# TODO: Specify "EAGAIN" type error when priority is unable to be modified
+#       due to current system state.  Currently, sdbusplus does not support
+#       errors on properties.