description: >
    Implement this interface to provide trigger inspection features. An
    implementation service should additionally implement
    xyz.openbmc_project.Object.Delete for deletion of individual trigger.

properties:
    - name: Discrete
      type: boolean
      description: >
          If true than trigger uses discrete thresholds as threshold conditions.
          Otherwise numeric thresholds is used.
      flags:
          - const
    - name: TriggerActions
      type: array[enum[self.TriggerAction]]
      description: >
          Defines actions which are taken when threshold conditions are met.
      flags:
          - const
    - name: Persistent
      type: boolean
      description: Defines if Trigger is stored in non volatile memory.
    - name: Reports
      type: array[object_path]
      description: >
          Collection of Report objects that are updated when threshold
          conditions are met. List is ignored if TriggerActions property does
          not contain 'UpdateReport' action.
    - name: Sensors
      type: array[dict[object_path,string]]
      description: >
          Map of sensors that is monitored within trigger. D-Bus sensor path is
          used as map's key. Its value is a metadata that is used to store user
          data about sensor. In Redfish, metadata will be set to endpoint
          corresponding to that sensor.
    - name: Thresholds
      type: variant[array[struct[enum[self.Type],uint64,enum[self.Direction],double]],array[struct[string,enum[self.Severity],uint64,string]]]
      description: >
          First type in variant is a collection of numeric thresholds that has
          following fields - type, dwell time, direction and threshold value.
          Second type holded by variant is a collection of discrete thresholds
          that contains following fields - user id, severity, dwell time and
          threshold value. Discrete value does not need to be a number. Numeric
          threshold array is limited by Type enumeration, only 4 elements are
          allowed. Discrete threshold array size is not limited. If discrete
          threshold array is empty then every value change is taken into account
          of threshold condition. Dwell time specifies for how long condition
          has to persist to trigger an action.
    - name: Name
      type: string
      description: >
          Defines the name of trigger to be exposed over D-Bus.

enumerations:
    - name: TriggerAction
      description: >
          Defines a action which is taken once threshold condition is met.
      values:
          - name: LogToJournal
            description: Trigger will log to journal.
          - name: LogToRedfishEventLog
            description: Trigger will log Redfish message.
          - name: UpdateReport
            description: >
                Trigger will update reports. Reports that will be updated are
                specified in ReportNames property.
    - name: Type
      description: >
          Defines a context of a message that is logged when numeric threshold
          condition is met.
      values:
          - name: LowerCritical
          - name: LowerWarning
          - name: UpperWarning
          - name: UpperCritical
    - name: Direction
      description: >
          Defines in which direction threshold value is crossed to fulfill
          numeric threshold condition.
      values:
          - name: Either
            description: >
                Crossing threshold value fulfill numeric threshold condition.
          - name: Decreasing
            description: >
                If threshold value is crossed and previous sensor value was
                greater then threshold value then numeric threshold condition is
                met.
          - name: Increasing
            description: >
                If threshold value is crossed and previous sensor value was less
                then threshold value then numeric threshold condition is met.
    - name: Severity
      description: >
          Defines a context of a message that is logged when discrete threshold
          condition is met.
      values:
          - name: OK
          - name: Warning
          - name: Critical
