1description: >
2    Implement this interface to provide report inspection features. An
3    implementation service should additionally implement
4    xyz.openbmc_project.Object.Delete for deletion of individual report objects.
5
6methods:
7  - name: Update
8    description: >
9        The Update method is defined for the on demand metric report update.
10        It triggers update of the Readings property. If ReportingType is not
11        set to OnRequest then method does nothing.
12
13properties:
14  - name: Persistency
15    type: boolean
16    description: >
17        Defines if the report configuration is stored in non volatile memory.
18        Configuration contains all Report properties excluding Readings.
19  - name: ReadingParameters
20    type: array[struct[object_path,enum[self.OperationType],string,string]]
21    description: >
22        Array of structures that contains sensor path that is monitored by
23        Telemetry service, operation type, metric Id and metadata. Metric Id and
24        metadata are used to store user details, e.g. metadata can be used to
25        map sensor name to DBus path.
26  - name: Readings
27    type: struct[uint64,array[struct[string,string,double,uint64]]]
28    description: >
29        Structure that contains timestamp of readings update in milliseconds and
30        array of metric Id, metadata, reading value and timestamp of single
31        reading update in milliseconds. Metric Id and metadata are equal to its
32        counterparts in ReadingParameters property.
33    flags:
34    - readonly
35  - name: EmitsReadingsUpdate
36    type: boolean
37    description: >
38        On Readings update PropertiesChanged signal is emitted. It allows to
39        decrease generation of load on DBus when Readings property is updated.
40        Redfish Event Service requires this option to be equal to true.
41    flags:
42    - const
43  - name: LogToMetricReportsCollection
44    type: boolean
45    description: >
46        Presence of Report in Metric Report Collection in Redfish Telemetry
47        Service.
48    flags:
49    - const
50  - name: ReportingType
51    type: enum[self.ReportingType]
52    description: Defines how readings are updated.
53  - name: ReportUpdates
54    type: enum[self.ReportUpdates]
55    description: Defines how Readings array is filled.
56  - name: AppendLimit
57    type: size
58    description: Defines a limit of readings per sensor.
59  - name: Interval
60    type: uint64
61    description: >
62        Defines period of time in milliseconds when readings are updated.
63
64enumerations:
65   - name: OperationType
66     descritpion: Type of action that is executed on readings.
67     values:
68       - name: Single
69         description: Store the latest reading.
70       - name: Max
71         description: Store maximal reading during defined time period.
72       - name: Min
73         description: Store minimal reading during defined time period.
74       - name: Avg
75         description: Calulate average of readings during defined time period.
76       - name: Sum
77         description: Calulate sum of readings over defined time period.
78   - name: ReportingType
79     description: >
80       The type that defines when Readings are updated.
81     values:
82       - name: OnChange
83         description: >
84           On sensor reading change.
85       - name: OnRequest
86         description: >
87           On Update method call.
88       - name: Periodic
89         description: >
90           After period of time defined by ScanPeriod property.
91   - name: ReportUpdates
92     description: >
93       The type that defines how Readings are updated.
94     values:
95       - name: Overwrite
96         description: >
97           Last sensor reading is written to Readings overwriting the previous
98           value.
99       - name: AppendWrapsWhenFull
100         description: >
101           Append sensor reading to Readings up to limit specify in AppendLimit
102           then start from the beginning.
103       - name: AppendStopsWhenFull
104         description: >
105           Append sensor reading to Readings up to limit specify in AppendLimit
106           then stop till report update.
107