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[array[object_path],enum[self.OperationType],string,string,enum[self.CollectionTimescope],uint64]]
21      description: >
22          Array of structures that contains array of sensor paths that are
23          monitored by Telemetry service, operation type, metric Id, metadata,
24          collection timescope and collection duration. Metric Id and metadata are
25          used to store user details, e.g. metadata can be used to map sensor name
26          to DBus path.
27    - name: Readings
28      type: struct[uint64,array[struct[string,string,double,uint64]]]
29      description: >
30          Structure that contains timestamp of readings update in milliseconds and
31          array of metric Id, metadata, reading value and timestamp of single
32          reading update in milliseconds. Metric Id and metadata are equal to its
33          counterparts in ReadingParameters property.
34      flags:
35          - readonly
36    - name: EmitsReadingsUpdate
37      type: boolean
38      description: >
39          On Readings update PropertiesChanged signal is emitted. It allows to
40          decrease generation of load on DBus when Readings property is updated.
41          Redfish Event Service requires this option to be equal to true.
42      flags:
43          - const
44    - name: LogToMetricReportsCollection
45      type: boolean
46      description: >
47          Presence of Report in Metric Report Collection in Redfish Telemetry
48          Service.
49      flags:
50          - const
51    - name: ReportingType
52      type: enum[self.ReportingType]
53      description: Defines how readings are updated.
54    - name: ReportUpdates
55      type: enum[self.ReportUpdates]
56      description: Defines how Readings array is filled.
57    - name: AppendLimit
58      type: size
59      description: Defines the maximum number of entries in 'Readings' property.
60      flags:
61          - readonly
62    - name: Interval
63      type: uint64
64      description: >
65          Defines period of time in milliseconds when readings are updated.
66    - name: Enabled
67      type: boolean
68      description: >
69          Indicates if readings in report will be updated. This may be set to
70          false by the service if ReportUpdates property is 'AppendStopsWhenFull'
71          and readings limit specified by AppendLimit is reached.
72
73enumerations:
74    - name: OperationType
75      description: Type of action that is executed on readings.
76      values:
77          - name: Single
78            description: Store the latest reading.
79          - name: Max
80            description: Store maximal reading during defined time period.
81          - name: Min
82            description: Store minimal reading during defined time period.
83          - name: Avg
84            description: Calculate average of readings during defined time period.
85          - name: Sum
86            description: Calculate sum of readings over defined time period.
87    - name: ReportingType
88      description: >
89          The type that defines when Readings are updated.
90      values:
91          - name: OnChange
92            description: >
93                On sensor reading change.
94          - name: OnRequest
95            description: >
96                On Update method call.
97          - name: Periodic
98            description: >
99                After period of time defined by Interval property.
100    - name: ReportUpdates
101      description: >
102          The type that defines how Readings are updated.
103      values:
104          - name: Overwrite
105            description: >
106                Last sensor reading is written to Readings overwriting the previous
107                value. AppendLimit set by user is ignored. Readings size is equal to
108                count of all sensors across all metrics.
109          - name: AppendWrapsWhenFull
110            description: >
111                Append sensor reading to Readings up to limit specify in AppendLimit
112                then start from the beginning.
113          - name: AppendStopsWhenFull
114            description: >
115                Append sensor reading to Readings up to limit specify in AppendLimit
116                then stop till report update.
117          - name: NewReport
118            description: >
119                A new report is created, whose name is the current metric report name
120                concatenated with the timestamp.
121    - name: CollectionTimescope
122      description: >
123          The time scope of the related metric values.
124      values:
125          - name: Point
126            description: >
127                The corresponding metric apply to a point in time. The reading
128                timestamp in Readings property specifies point in time.
129          - name: Interval
130            description: >
131                The corresponding metric apply to a time interval. The reading
132                timestamp in Readings property specifies the end of the time interval
133                and the collection duration of ReadingParameters specify its duration.
134          - name: StartupInterval
135            description: >
136                The corresponding metric apply to a time interval that began on
137                report creation. The reading timestamp in Readings property specifies
138                the end of the time interval. Collection duration of
139                ReadingParameters specifies the duration between the startup of
140                resource and timestamp.
141