description: >
    Implement to provide an IPMI System Event Log (SEL) logging interface
    under the path /xyz/openbmc_project/Logging/IPMI.

    SEL records store system event information and will contain a record ID
    and type followed by type-specific information.  The type-specific
    information includes a timestamp, generator ID (used to identify the
    component that is adding the SEL record), sensor number, event
    direction and event-specific data for system type events; or timestamp
    and OEM data for OEM type events.

    The interface allows adding system or OEM type events.  For system type
    events it requires a generator ID (0x20 for BMC), sensor D-Bus path,
    event direction (assertion or de-assertion), and event specific data.
    For OEM type events, it requires the record type and OEM data.

    It will assign a record ID and timestamp automatically and return the
    assigned record ID.
methods:
    - name: IpmiSelAdd
      description: >
        Log a system event record type SEL entry.
      parameters:
        - name: Message
          type: string
          description: >
            The text to log for the event.
        - name: Path
          type: path
          description: >
            The object path that is generating the SEL entry.
        - name: SELData
          type: array[byte]
          description: >
            An array of up to 3 bytes of SEL event data.
        - name: Assert
          type: boolean
          description: >
            An indicator if the SEL event is asserting or de-asserting.
        - name: GeneratorID
          type: uint16
          description: >
            The Generator ID of the component requesting the new SEL entry.
            In most cases this will be 0x20 (the BMC Generator ID).
      returns:
        - name: RecordID
          type: uint16
          description: >
            The Record ID of the new SEL entry.
      errors:
        - xyz.openbmc_project.Common.Error.InternalFailure
        - xyz.openbmc_project.Common.Error.InvalidArgument

    - name: AddExtended
      description: >
        Log a system event record SEL entry with custom SensorType/EventType.
      parameters:
        - name: Message
          type: string
          description: >
            The text to log for the event.
        - name: Path
          type: path
          description: >
            The object path that is generating the SEL entry.
        - name: SELData
          type: array[byte]
          description: >
            An array of up to 3 bytes of SEL event data.
        - name: GeneratorID
          type: uint16
          description: >
            The Generator ID of the component requesting the new SEL entry.
            In most cases this will be 0x20 (the BMC Generator ID).
        - name: eventType
          type: byte
          description: >
            Type of trigger for the event and event direction.
        - name: sensorType
          type: byte
          description: >
            Sensor Type Code for sensor that generated the event.
        - name: sensorNum
          type: byte
          description: >
            Number of sensor that generated the event.
      returns:
        - name: RecordID
          type: uint16
          description: >
            The Record ID of the new SEL entry.
      errors:
        - xyz.openbmc_project.Common.Error.InternalFailure
        - xyz.openbmc_project.Common.Error.InvalidArgument

    - name: IpmiSelAddOem
      description: >
        Log an OEM record type SEL entry requested from external to the BMC.
      parameters:
        - name: Message
          type: string
          description: >
            The text to log for the event.
        - name: SELData
          type: array[byte]
          description: >
            An array of up to 13 bytes of SEL event data.
        - name: RecordType
          type: byte
          description: >
            The OEM record type for the SEL entry.
      returns:
        - name: RecordID
          type: uint16
          description: >
            The Record ID of the new SEL entry.
      errors:
        - xyz.openbmc_project.Common.Error.InternalFailure
        - xyz.openbmc_project.Common.Error.InvalidArgument

    - name: Clear
      description: >
        Clear the SEL entries from their storage location.
