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[struct[object_path,string]],enum[self.OperationType],string,enum[self.CollectionTimescope],uint64]]
      description: >
          Collection of metric parameters. Single entry consists of: array of
          [sensor path, metadata] tuples, operation type, metric ID, collection
          timescope and collection duration. Sensor paths point to sensors
          providing readings. Metadata contains client information; in case of
          Redfish it shall be metric's URI. Operation type provides knowledge of
          action executed on readings. Metric ID contains name that can be
          mapped to metadata (like Redfish Metric ID). Collection timescope
          specifies type of time scope applied to specific metric. Collection
          duration stores timestamp related with timescope type in milliseconds.
    - 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: ReportingType
      type: enum[self.ReportingType]
      description: Defines how readings are updated.
    - name: ReportUpdates
      type: enum[self.ReportUpdates]
      description: Defines how Readings array is filled.
    - name: AppendLimit
      type: size
      description: Defines the maximum number of entries in 'Readings' property.
      flags:
          - readonly
    - name: Interval
      type: uint64
      description: >
          Defines period of time in milliseconds when readings are updated.
    - name: Enabled
      type: boolean
      description: >
          Indicates if readings in report will be updated. This may be set to
          false by the service if ReportUpdates property is
          'AppendStopsWhenFull' and readings limit specified by AppendLimit is
          reached.
    - name: Name
      type: string
      description: >
          Defines the name of reading report to be exposed over D-Bus.
      flags:
          - const
    - name: ReportActions
      type: array[enum[self.ReportActions]]
      description: >
          Contains set of flags indicating additional actions that can be
          triggered after readings' update.
    - name: Triggers
      type: array[object_path]
      description: >
          Array of paths to Trigger objects associated with this report.
      flags:
          - readonly

enumerations:
    - name: OperationType
      description: Type of action that is executed on readings.
      values:
          - name: Maximum
            description: >
                Store maximal reading during defined time period.
          - name: Minimum
            description: >
                Store minimal reading during defined time period.
          - name: Average
            description: >
                Calculate average of readings during defined time period.
          - name: Summation
            description: >
                Calculate 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 Interval property.
    - name: ReportUpdates
      description: >
          The type that defines how Readings are updated.
      values:
          - name: Overwrite
            description: >
                Last sensor reading is written to Readings overwriting the
                previous value. AppendLimit set by user is ignored. Readings
                size is equal to count of all sensors across all metrics.
          - name: AppendWrapsWhenFull
            description: >
                Append sensor reading to Readings up to limit specify in
                AppendLimit then start from the beginning.
          - name: AppendStopsWhenFull
            description: >
                Append sensor reading to Readings up to limit specify in
                AppendLimit then stop till report update.
    - name: CollectionTimescope
      description: >
          The time scope of the related metric values.
      values:
          - name: Point
            description: >
                The corresponding metric apply to a point in time. The reading
                timestamp in Readings property specifies point in time.
          - name: Interval
            description: >
                The corresponding metric apply to a time interval. The reading
                timestamp in Readings property specifies the end of the time
                interval and the collection duration of ReadingParameters
                specify its duration.
          - name: StartupInterval
            description: >
                The corresponding metric apply to a time interval that began on
                report creation. The reading timestamp in Readings property
                specifies the end of the time interval. Collection duration of
                ReadingParameters specifies the duration between the startup of
                resource and timestamp.
    - name: ErrorType
      description: >
          Enumerates error types that might occur during properties'
          configuration.
      values:
          - name: PropertyConflict
            description: >
                Appears in situation when two properties, which are dependent
                from each other, have conflicting values. For example, when
                ReportingType property has value "Periodic", but Interval is set
                to 0, such conflict will occur.
    - name: ReportActions
      description: >
          Enumerates types of actions, that can be triggered when Readings
          property value is updated.
      values:
          - name: EmitsReadingsUpdate
            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 enabled.
          - name: LogToMetricReportsCollection
            description: >
                On Readings update report is stored to Metric Report Collection
                in Redfish Telemetry Service.
