1description: >
2    Implement to provide reports management. Contain information about report
3    limitations and allows to add report.
4
5methods:
6    - name: AddReport
7      description: >
8          Create new object that represents Report with
9          xyz.openbmc_project.Telemetry.Report interface stored in path
10          /xyz/openbmc_project/Telemetry/Reports/{properties[Id]} where
11          properties[Id] is passed into this method as a parameter.
12      parameters:
13          - name: properties
14            type: array[dict[string,variant[boolean,uint32,uint64,string,enum[xyz.openbmc_project.Telemetry.Report.ReportingType],enum[xyz.openbmc_project.Telemetry.Report.ReportUpdates],array[enum[xyz.openbmc_project.Telemetry.Report.ReportActions]],array[struct[array[struct[object_path,string]],enum[xyz.openbmc_project.Telemetry.Report.OperationType],string,enum[xyz.openbmc_project.Telemetry.Report.CollectionTimescope],uint64]]]]]
15            description: >
16                Map of properties defining added report object. Key is the
17                string identifier of property. Value is a variant, whose
18                underlying type is dependent from the key. Possible key values
19                are: Id, Name, ReportingType, ReportActions, Interval,
20                AppendLimit, ReportUpdates, MetricParams, Enabled. All keys are
21                optional, therefore it is acceptable to pass an empty map here.
22
23                Id (string) - unique identifier of created Report object to be
24                exposed over D-Bus. Acceptable formats are: "{Id}",
25                "{Prefix}/{SubId}", "{Prefix}/". If the last variant is used,
26                service will generate unique SubId value by itself.
27
28                Name (string) - user friendly name of created Report object.
29
30                ReportingType (enum[
31                xyz.openbmc_project.Telemetry.Report.ReportingType]) - indicates
32                when readings should be updated. Possible values are listed in
33                Report interface documentation.
34
35                ReportActions (array[enum[
36                xyz.openbmc_project.Telemetry.Report.ReportActions]]) - possible
37                additional actions to trigger after readings' update, as
38                specified in Report interface documentation.
39
40                Interval (uint64) - period of time in milliseconds when Report
41                is updated with new readings. Minimal interval is defined in
42                MinInterval property.
43
44                AppendLimit (size) - maximum number of entries in 'Readings'
45                property.
46
47                ReportUpdates (enum[
48                xyz.openbmc_project.Telemetry.Report.ReportUpdates]) - indicates
49                how readings should be updated. Possible values are listed in
50                Report interface documentation.
51
52                MetricParams (array[struct[array[struct[object_path,string]],
53                enum[xyz.openbmc_project.Telemetry.Report.OperationType],string,
54                enum[xyz.openbmc_project.Telemetry.Report.CollectionTimescope],
55                uint64]]) - array of metric parameters, which are stored in a
56                way specified in description of ReadingParameters property from
57                Report interface documentation.
58
59                Enabled (boolean) - indicates if readings in report will be
60                updated.
61      returns:
62          - name: reportPath
63            type: object_path
64            description: >
65                Path to new report ->
66                  /xyz/openbmc_project/Telemetry/Reports/{parameters[Id]}.
67
68properties:
69    - name: MaxReports
70      type: size
71      description: >
72          Contains the max number of metric reports supported by the Telemetry.
73          This property is added to be compliant with the Redfish Telemetry
74          Service schema, that contains MaxReports property.
75      flags:
76          - const
77    - name: MinInterval
78      type: uint64
79      description: >
80          Minimal allowed time between readings property updates. It limits
81          Interval property in xyz.openbmc_project.Telemetry.Report and
82          interval parameter in AddReport method.
83      flags:
84          - const
85    - name: SupportedOperationTypes
86      type: array[enum[xyz.openbmc_project.Telemetry.Report.OperationType]]
87      description: >
88          Contains subset of operation types currently supported by this
89          service.
90      flags:
91          - const
92