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[object_path,enum[self.OperationType],string,string]]
    description: >
        Array of structures that contains sensor path that is monitored by
        Telemetry service, 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 the latest reading.
       - 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.
