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