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

methods:
  - name: Update
    description: >
        The Update method is defined for the on demand metric report update.
        It triggers update of the Readings property. If ReportingType is not
        set to OnRequest then method does nothing.

properties:
  - name: Persistency
    type: boolean
    description: >
        Defines if the report configuration is stored in non volatile memory.
        Configuration contains all Report properties excluding Readings.
  - name: ReadingParameters
    type: array[struct[array[object_path],enum[self.OperationType],string,string]]
    description: >
        Array of structure that contains list of sensor paths, operation type,
        metric Id and metadata. Metric Id and metadata are used to store user
        details, e.g. metadata can be used to map sensor name to DBus path.
  - name: Readings
    type: struct[uint64,array[struct[string,string,double,uint64]]]
    description: >
        Structure that contains timestamp of readings update in milliseconds and
        array of metric Id, metadata, reading value and timestamp of single
        reading update in milliseconds. Metric Id and metadata are equal to its
        counterparts in ReadingParameters property.
    flags:
    - readonly
  - name: EmitsReadingsUpdate
    type: boolean
    description: >
        On Readings update PropertiesChanged signal is emitted. It allows to
        decrease generation of load on DBus when Readings property is updated.
        Redfish Event Service requires this option to be equal to true.
    flags:
    - const
  - name: LogToMetricReportsCollection
    type: boolean
    description: >
        Presence of Report in Metric Report Collection in Redfish Telemetry
        Service.
    flags:
    - const
  - name: ReportingType
    type: enum[self.ReportingType]
    description: Defines how readings are updated.
  - name: Interval
    type: uint64
    description: >
        Defines period of time in milliseconds when readings are updated.

enumerations:
   - name: OperationType
     descritpion: Type of action that is executed on readings.
     values:
       - name: Single
         description: Store a single reading, only allowed on single sensor.
       - name: Max
         description: Store maximal reading during defined time period.
       - name: Min
         description: Store minimal reading during defined time period.
       - name: Avg
         description: Calulate average of readings during defined time period.
       - name: Sum
         description: Calulate sum of readings over defined time period.
   - name: ReportingType
     description: >
       The type that defines when Readings are updated.
     values:
       - name: OnChange
         description: >
           On sensor reading change.
       - name: OnRequest
         description: >
           On Update method call.
       - name: Periodic
         description: >
           After period of time defined by ScanPeriod property.
