1description: >
2    Interface for performing code update for various firmware entities.
3
4methods:
5    - name: StartUpdate
6      description: >
7          Start a firmware 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[xyz.openbmc_project.Software.ApplyTime.RequestedApplyTimes]
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[xyz.openbmc_project.Software.ApplyTime.RequestedApplyTimes]]
35      description: >
36          This property indicates the apply times allowed for this device.
37      flags:
38          - readonly
39