1description: >
2   Implementation of BMC state management.  When rebooting we are in
3   transition.  When Ready all services required are running
4   successfully.  When we are Not Ready this implies not all services
5   have started that are required to be.
6
7properties:
8   - name: RequestedBMCTransition
9     type: enum[self.Transition]
10     default: 'None'
11     description: >
12         The desired BMC transition
13
14   - name: CurrentBMCState
15     type: enum[self.BMCState]
16     description: >
17         The current state of the BMC and is a read-only property.
18
19   - name: LastRebootTime
20     type: uint64
21     description: >
22        The last time at which the BMC came out of a reboot as
23        determined by its uptime, in epoch time, in milliseconds.
24
25enumerations:
26   - name: Transition
27     description: >
28       The desired transition for the BMC firmware
29     values:
30       - name: 'Reboot'
31         description: >
32           BMC system should be rebooted
33       - name: 'HardReboot'
34         description: >
35           BMC system should be non-gracefully rebooted.
36       - name: 'None'
37         description: >
38           No transition is in progress
39
40   - name: BMCState
41     description: >
42       The current state of the BMC firmware
43     values:
44       - name: 'Ready'
45         description: >
46           Ready implies all services started and are running successfully
47       - name: 'NotReady'
48         description: >
49           Not ready implies not all services have started or are not running successfully
50       - name: 'UpdateInProgress'
51         description: >
52           UpdateInProgress implies BMC is in firmware update mode. CurrentBMCState
53           will be set to "UpdateInProgress" while starting image download and
54           reset to Ready, once activation is done or error case during update process.
55