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[struct[object_path,string]],enum[self.OperationType],string,enum[self.CollectionTimescope],uint64]]
21      description: >
22          Collection of metric parameters. Single entry consists of:
23          array of [sensor path, metadata] tuples, operation type, metric ID,
24          collection timescope and collection duration. Sensor paths point to
25          sensors providing readings. Metadata contains client information; in
26          case of Redfish it shall be metric's URI. Operation type provides
27          knowledge of action executed on readings. Metric ID contains name that
28          can be mapped to metadata (like Redfish Metric ID). Collection
29          timescope specifies type of time scope applied to specific metric.
30          Collection duration stores timestamp related with timescope type in
31          milliseconds.
32    - name: Readings
33      type: struct[uint64,array[struct[string,string,double,uint64]]]
34      description: >
35          Structure that contains timestamp of readings update in milliseconds
36          and array of metric Id, metadata, reading value and timestamp of
37          single reading update in milliseconds. Metric Id and metadata are
38          equal to its counterparts in ReadingParameters property.
39      flags:
40          - readonly
41    - name: ReportingType
42      type: enum[self.ReportingType]
43      description: Defines how readings are updated.
44    - name: ReportUpdates
45      type: enum[self.ReportUpdates]
46      description: Defines how Readings array is filled.
47    - name: AppendLimit
48      type: size
49      description: Defines the maximum number of entries in 'Readings' property.
50      flags:
51          - readonly
52    - name: Interval
53      type: uint64
54      description: >
55          Defines period of time in milliseconds when readings are updated.
56    - name: Enabled
57      type: boolean
58      description: >
59          Indicates if readings in report will be updated. This may be set to
60          false by the service if ReportUpdates property is
61          'AppendStopsWhenFull' and readings limit specified by AppendLimit is
62          reached.
63    - name: ErrorMesages
64      type: array[struct[enum[self.ErrorType],string]]
65      description: >
66          Stores errors related with incorrect or conflicting property values.
67          Error messages are stored in pairs containing error type and affected
68          property.
69      flags:
70          - readonly
71    - name: Name
72      type: string
73      description: >
74          Defines the name of reading report to be exposed over D-Bus.
75      flags:
76          - const
77    - name: ReportActions
78      type: array[enum[self.ReportActions]]
79      description: >
80          Contains set of flags indicating additional actions that can be
81          triggered after readings' update.
82    - name: Triggers
83      type: array[object_path]
84      description: >
85          Array of paths to Trigger objects associated with this report.
86      flags:
87          - readonly
88
89enumerations:
90    - name: OperationType
91      description: Type of action that is executed on readings.
92      values:
93          - name: Maximum
94            description: >
95                Store maximal reading during defined time period.
96          - name: Minimum
97            description: >
98                Store minimal reading during defined time period.
99          - name: Average
100            description: >
101                Calculate average of readings during defined time period.
102          - name: Summation
103            description: >
104                Calculate sum of readings over defined time period.
105    - name: ReportingType
106      description: >
107          The type that defines when Readings are updated.
108      values:
109          - name: OnChange
110            description: >
111                On sensor reading change.
112          - name: OnRequest
113            description: >
114                On Update method call.
115          - name: Periodic
116            description: >
117                After period of time defined by Interval property.
118    - name: ReportUpdates
119      description: >
120          The type that defines how Readings are updated.
121      values:
122          - name: Overwrite
123            description: >
124                Last sensor reading is written to Readings overwriting the
125                previous value. AppendLimit set by user is ignored. Readings
126                size is equal to count of all sensors across all metrics.
127          - name: AppendWrapsWhenFull
128            description: >
129                Append sensor reading to Readings up to limit specify in
130                AppendLimit then start from the beginning.
131          - name: AppendStopsWhenFull
132            description: >
133                Append sensor reading to Readings up to limit specify in
134                AppendLimit then stop till report update.
135    - name: CollectionTimescope
136      description: >
137          The time scope of the related metric values.
138      values:
139          - name: Point
140            description: >
141                The corresponding metric apply to a point in time. The reading
142                timestamp in Readings property specifies point in time.
143          - name: Interval
144            description: >
145                The corresponding metric apply to a time interval. The reading
146                timestamp in Readings property specifies the end of the time
147                interval and the collection duration of ReadingParameters
148                specify its duration.
149          - name: StartupInterval
150            description: >
151                The corresponding metric apply to a time interval that began on
152                report creation. The reading timestamp in Readings property
153                specifies the end of the time interval. Collection duration of
154                ReadingParameters specifies the duration between the startup of
155                resource and timestamp.
156    - name: ErrorType
157      description: >
158          Enumerates error types that might occur during properties'
159          configuration.
160      values:
161          - name: PropertyConflict
162            description: >
163                Appears in situation when two properties, which are dependent
164                from each other, have conflicting values. For example, when
165                ReportingType property has value "Periodic", but Interval is set
166                to 0, such conflict will occur.
167    - name: ReportActions
168      description: >
169          Enumerates types of actions, that can be triggered when Readings
170          property value is updated.
171      values:
172          - name: EmitsReadingsUpdate
173            description: >
174                On Readings update PropertiesChanged signal is emitted. It
175                allows to decrease generation of load on DBus when Readings
176                property is updated. Redfish Event Service requires this option
177                to be equal to enabled.
178          - name: LogToMetricReportsCollection
179            description: >
180                On Readings update report is stored to Metric Report Collection
181                in Redfish Telemetry Service.
182