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: ErrorMesages
      type: array[struct[enum[self.ErrorType],string]]
      description: >
          Stores errors related with incorrect or conflicting property values.
          Error messages are stored in pairs containing error type and affected
          property.
      flags:
          - readonly
    - 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.
