1description: >
2    Provides D-Bus access to OpenPower Platform Event Logs
3methods:
4    - name: GetPEL
5      description: >
6          Returns a file descriptor to a PEL.
7      parameters:
8          - name: pelID
9            type: uint32
10            description: >
11                The PEL log ID of the PEL to retrieve.
12      returns:
13          - name: data
14            type: unixfd
15            description: >
16                A file descriptor for a file that contains the PEL.
17      errors:
18          - xyz.openbmc_project.Common.Error.InternalFailure
19          - xyz.openbmc_project.Common.Error.InvalidArgument
20
21    - name: GetPELFromOBMCID
22      description: >
23          Returns PEL data based on the OpenBMC event log ID.
24      parameters:
25          - name: obmcLogID
26            type: uint32
27            description: >
28                The OpenBMC event log ID of the PEL to retrieve.
29      returns:
30          - name: data
31            type: array[byte]
32            description: >
33                The PEL data
34      errors:
35          - xyz.openbmc_project.Common.Error.InvalidArgument
36
37    - name: HostAck
38      description: >
39          Notifies the PEL handler that the host (usually the OS) acked a PEL.
40      parameters:
41          - name: pelID
42            type: uint32
43            description: >
44                The PEL log ID
45      errors:
46          - xyz.openbmc_project.Common.Error.InvalidArgument
47
48    - name: HostReject
49      description: >
50          Notifies the PEL handler that the host could not process a PEL.
51      parameters:
52          - name: pelID
53            type: uint32
54            description: >
55                The PEL log ID
56          - name: reason
57            type: enum[self.RejectionReason]
58            description: >
59                The reason the PEL was rejected
60      errors:
61          - xyz.openbmc_project.Common.Error.InvalidArgument
62
63    - name: CreatePELWithFFDCFiles
64      description: >
65          Creates an OpenBMC event log and a corresponding PEL. This method
66          returns the IDs of the created PEL and OpenBMC event log, unlike the
67          'xyz.openbmc_project.Logging.Create.CreateWithFFDCFiles' method which
68          doesn't return anything.
69      parameters:
70          - name: Message
71            type: string
72            description: >
73                The Message property of the OpenBMC event log entry. This is
74                also the key into the PEL message registry.
75          - name: Severity
76            type: enum[xyz.openbmc_project.Logging.Entry.Level]
77            description: >
78                The Severity property of the event entry.
79          - name: AdditionalData
80            type: dict[string, string]
81            description: >
82                The AdditionalData property of the event entry. e.g.:
83                  {
84                    "key1": "value1",
85                    "key2": "value2"
86                  }
87                ends up in AdditionaData like:
88                  ["KEY1=value1", "KEY2=value2"]
89          - name: FFDC
90            type:
91                array[struct[enum[xyz.openbmc_project.Logging.Create.FFDCFormat],
92                byte, byte, unixfd]]
93            description: >
94                File descriptors for any files containing FFDC, along with
95                metadata about the contents:
96
97                  FFDCFormat- The format type of the contained data.
98                  subType - The format subtype, used for the 'Custom' type.
99                  version - The version of the data format, used for the
100                'Custom'
101                            type.
102                  unixfd - The file descriptor to the data file.
103
104                e.g.: [
105                  {"xyz.openbmc_project.Logging.Create.FFDCFormat.JSON", 0, 0,
106                5},
107                  {"xyz.openbmc_project.Logging.Create.FFDCFormat.Custom", 1, 2,
108                6} ]
109      returns:
110          - name: IDs
111            type: struct[uint32, uint32]
112            description: >
113                The IDs of the 2 created logs:
114                  - OpenBMC event log ID
115                  - PEL log ID: The unique ID of the PEL
116                Note that the PEL's platform log ID (PLID) field is always equal
117                to the PEL log ID for BMC created PELs.
118
119    - name: GetPELIdFromBMCLogId
120      description: >
121          Returns the PEL Id (aka Entry ID (EID)) based on the given BMC event
122          log id.
123      parameters:
124          - name: bmcLogId
125            type: uint32
126            description: >
127                The BMC event log id of the PEL to retrieve the PEL id.
128      returns:
129          - name: pelId
130            type: uint32
131            description: >
132                The Id of the PEL.
133      errors:
134          - xyz.openbmc_project.Common.Error.InvalidArgument
135
136    - name: GetBMCLogIdFromPELId
137      description: >
138          Returns the BMC event log id based on the given PEL id (aka Entry ID
139          (EID)).
140      parameters:
141          - name: pelId
142            type: uint32
143            description: >
144                The PEL id to retrieve the BMC event log id.
145      returns:
146          - name: bmcLogId
147            type: uint32
148            description: >
149                The BMC event log id of the PEL.
150      errors:
151          - xyz.openbmc_project.Common.Error.InvalidArgument
152
153    - name: GetPELJSON
154      description: >
155          Returns a string containing the JSON representation of the PEL.
156      parameters:
157          - name: bmcLogId
158            type: uint32
159            description: >
160                The BMC event log id of the PEL to retrieve JSON for
161      returns:
162          - name: json
163            type: string
164            description: >
165                The PEL in JSON format
166      errors:
167          - xyz.openbmc_project.Common.Error.InvalidArgument
168          - xyz.openbmc_project.Common.Error.InternalFailure
169
170enumerations:
171    - name: RejectionReason
172      description: >
173          The reason the PEL was rejected
174      values:
175          - name: BadPEL
176            description: >
177                The PEL was malformed.
178          - name: HostFull
179            description: >
180                The host does not have room for more PELs at this time.
181