Software: add initial software-version mgmt

Change-Id: I3b50488b8383c595b4b41375ea0d62d62bdc0eed
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/xyz/openbmc_project/Software/Version.interface.yaml b/xyz/openbmc_project/Software/Version.interface.yaml
new file mode 100644
index 0000000..f655af0
--- /dev/null
+++ b/xyz/openbmc_project/Software/Version.interface.yaml
@@ -0,0 +1,32 @@
+description: >
+    Simple definition of a Software or Firmware version.
+properties:
+    - name: Version
+      type: string
+      description: >
+        The version identifier.
+    - name: Purpose
+      type: enum[self.VersionPurpose]
+      description: >
+        The purpose of the version.  As in, what can it be used for or
+        applied to?
+enumerations:
+    - name: VersionPurpose
+      description: >
+        An enumeration of possible purposes of the version.
+      values:
+        - name: Unknown
+          description: >
+            The version is of unknown purpose.
+        - name: Other
+          description: >
+            The version is of some other purpose.
+        - name: System
+          description: >
+            The version is an aggregate for the system as a whole.
+        - name: BMC
+          description: >
+            The version is a version for the BMC.
+        - name: Host
+          description: >
+            The version is a version for a managed host.