description: >
    Implement to provide reports management. Contain information about report
    limitations and allows to add report.

methods:
  - name: AddReport
    description: >
        Create new object that represent Report with
        xyz.openbmc_project.Telemetry.Report interface stored in path
        /xyz/openbmc_project/Telemetry/Reports/{Domain}/{Name} where
        Domain and Name are parameters of this method.
    parameters:
      - name: name
        type: string
        description: >
            Defines the name of report to be exposed over D-Bus. Service allows
            to use separator '/' in name to group reports in directory.
      - name: reportingType
        type: enum[xyz.openbmc_project.Telemetry.Report.ReportingType]
        description: Defines report type
      - name: reportUpdates
        type: enum[xyz.openbmc_project.Telemetry.Report.ReportUpdates]
        description: Defines report update type
      - name: appendLimit
        type: size
        description: Defines a limit of readings per sensor
      - name: emitsReadingsUpdate
        type: boolean
        description: >
            Defines presence of PropertiesChanged signal for
            xyz.openbmc_project.Telmetry.Report.Readings property.
      - name: logToMetricReportsCollection
        type: boolean
        description: >
            Defines presence of Report in Metric Report Collection in Redfish
            Telemetry Service.
      - name: interval
        type: uint64
        description: >
            Defines period of time in milliseconds when Report is updated with
            new readings. Minimal interval is defined in MinInterval property.
      - name: metricParams
        type: array[struct[object_path,enum[xyz.openbmc_project.Telemetry.Report.OperationType],string,string]]
        description: >
            Array of metric parameters where first parameter is a DBus sensor
            path. Second parameter specifies operation type. Third is a metric
            Id and fourth is a metadata, both are used to store user details.
    returns:
      - name: reportPath
        type: object_path
        description: >
            Path to new report -> /xyz/openbmc_project/Telemetry/Reports/{name}.

properties:
  - name: MaxReports
    type: size
    description: >
        Contains the max number of metric reports supported by the Telemetry.
        This property is added to be compliant with the Redfish Telemetry
        Service schema, that contains MaxReports property.
    flags:
    - const
  - name: MinInterval
    type: uint64
    description: >
        Minimal allowed time between readings property updates. It limits
        Interval property in xyz.openbmc_project.Telemetry.Report and
        interval parameter in AddReport method.
    flags:
    - const
