1description: >
2    Interface for performing code update for various firwmare entities.
3
4methods:
5    - name: StartUpdate
6      description: >
7          Start a firware update to be performed asynchronously.
8      parameters:
9          - name: Image
10            type: unixfd
11            description: >
12                This property indicates the file descriptor of the firmware
13                image.
14          - name: ApplyTime
15            type: enum[self.ApplyTimes]
16            description: >
17                This property indicates when the software image update should be
18                applied.
19      returns:
20          - name: ObjectPath
21            type: object_path
22            description: >
23                The object path where the image interfaces will be hosted, for
24                example, required interfaces such as ActivationStatus,
25                ActivationProgress and optional interfaces such as Version.
26      errors:
27          - xyz.openbmc_project.Software.Update.Error.Incompatible
28          - xyz.openbmc_project.Software.Update.Error.InvalidSignature
29          - xyz.openbmc_project.Software.Update.Error.InvalidImage
30          - xyz.openbmc_project.Common.Error.Unavailable
31
32properties:
33    - name: AllowedApplyTimes
34      type: set[enum[self.ApplyTimes]]
35      description: >
36          This property indicates the apply times allowed for this device.
37      flags:
38          - readonly
39
40enumerations:
41    - name: ApplyTimes
42      description: >
43          The possible values of this property indicate when the newly updated
44          software image will be activated.
45      values:
46          - name: Immediate
47            description: >
48                Apply immediately.
49          - name: OnReset
50            description: >
51                Apply on reset of device being updated.
52