description: >
    Implement to provide event/error entry attributes.
    This interface should be instantiated for the phosphor::logging namespace.
    This interface is a collection of objects, therefore it is required to
    implement org.freedesktop.DBus.ObjectManager on the logging namespace root.
    Optionally, implement org.openbmc.Object.Delete to allow the deletion of
    individual entries.
properties:
    - name: Id
      type: uint32
      description: >
          The error event entry id number.
    - name: Timestamp
      type: uint64
      description: >
          Commit timestamp of the error event entry in milliseconds since 1970.
    - name: Severity
      type: enum[self.Level]
      description: >
          The severity of the error event entry.
    - name: Message
      type: string
      description: >
          The message description of the error event entry.
    - name: EventId
      type: string
      description: >
          An implementation-dependent unique identifier for this event. This
          property is different from Id in the sense that Id is a unique number
          per event but EventId is an optional identifier that is associated
          with the event. The content of this property is implementation
          defined.
    - name: AdditionalData
      type: array[string]
      description: >
          Additional information in the form of metadata field strings VAR=val
    - name: Resolved
      type: boolean
      description: >
          Error resolution status. Indicate if the problem being reported by
          this error log has been resolved. This will start out 'false' by
          default. Setting this to 'true' will NOT result in the error log being
          deleted.
    - name: ServiceProviderNotify
      type: boolean
      default: false
      description: >
          This property when set to 'true' indicates that this event log should
          be notified to the service provider, if that is implemented on the
          system. An event of this type requires a service action to replace the
          hardware part or update code to correct the error.
    - name: UpdateTimestamp
      type: uint64
      description: >
          The timestamp when any property was last modified, in milliseconds
          since the epoch (1 Jan 1970 00:00:00 UTC).  As only the
          Resolved property has a reason to change, a value that doesn't
          match the Timestamp property's value (which indicates when the
          log was created) would indicate that Resolved was changed.

enumerations:
    - name: Level
      description: >
          Possible severity levels for an error log entry.
      values:
        - name: Emergency
          description: >
              System is unusable.
        - name: Alert
          description: >
              Should be corrected immediately.
        - name: Critical
          description: >
              Critical condition.
        - name: Error
          description: >
              Error condition.
        - name: Warning
          description: >
              An error may occur if action is not taken.
        - name: Notice
          description: >
              Unusual condition, but not an error.
        - name: Informational
          description: >
              Normal operational message that does not require action.
        - name: Debug
          description: >
              Information useful to developers for debugging the application.

methods:
  - name: GetEntry
    description: >
      Returns the file descriptor to the raw Entry file, which is a binary blob.
      The mode of the file descriptor is to be reaad-only.
    returns:
      - name: fd
        type: unixfd
        description: >
          The file descriptor to the Entry file.
