1description: >
2    Simple definition of a Software or Firmware version. Note that this
3    interface may be implemented by D-Bus objects that do not necessarily
4    contain a software level. For example an OpenBMC log may implement this
5    interface to store the software level of the BMC or Host for debug purposes.
6    If looking for real software versions associated with a device then ensure
7    this interface is under the /xyz/openbmc_project/software object path.
8properties:
9    - name: Version
10      type: string
11      description: >
12          The version identifier.
13    - name: Purpose
14      type: enum[self.VersionPurpose]
15      description: >
16          The purpose of the version.  As in, what can it be used for or applied
17          to?
18
19          This property is deprecated in favor of Compatible strings and
20          inventory associations.  The enumeration should not be expanded
21          further.
22enumerations:
23    - name: VersionPurpose
24      description: >
25          An enumeration of possible purposes of the version.
26      values:
27          - name: Unknown
28            description: >
29                The version is of unknown purpose.
30          - name: Other
31            description: >
32                The version is of some other purpose.
33          - name: System
34            description: >
35                The version is an aggregate for the system as a whole.
36          - name: BMC
37            description: >
38                The version is a version for the BMC.
39          - name: Host
40            description: >
41                The version is a version for a managed host.
42          - name: PSU
43            description: >
44                The version is a version for a PSU.
45
46associations:
47    - name: running
48      description: >
49          This indicates the current running version for the associated
50          inventory item.
51      reverse_names:
52          - ran_on
53      required_endpoint_interfaces:
54          - xyz.openbmc_project.Inventory.Item
55    - name: activating
56      description: >
57          This indicates the current activated version for the associated
58          inventory item. There can be more than one active version associated
59          with the same inventory item. In such a case, RedundancyPriority
60          interface will help to decide the correct priority order for the
61          active version transition to running.
62      reverse_names:
63          - activated_on
64      required_endpoint_interfaces:
65          - xyz.openbmc_project.Inventory.Item
66
67paths:
68    - namespace: /xyz/openbmc_project/software
69