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