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: Id
14            type: string
15            description: >
16                Unique identifier of created Report object to be exposed over
17                D-Bus. Acceptable formats are: "{Id}", "{Prefix}/{SubId}",
18                "{Prefix}/". If the last variant is used, service will generate
19                unique SubId value by itself.
20          - name: Name
21            type: string
22            description: >
23                User friendly name of created Report object.
24          - name: reportingType
25            type: enum[xyz.openbmc_project.Telemetry.Report.ReportingType]
26            description: >
27                Indicates when readings should be updated. Possible values are
28                listed in Report interface documentation.
29          - name: ReportUpdates
30            type: enum[xyz.openbmc_project.Telemetry.Report.ReportUpdates]
31            description: >
32                Indicates how readings should be updated. Possible values are
33                listed in Report interface documentation.
34          - name: AppendLimit
35            type: size
36            description: >
37                Maximum number of entries in 'Readings' property.
38          - name: ReportActions
39            type: array[enum[xyz.openbmc_project.Telemetry.Report.ReportActions]]
40            description: >
41                Possible additional actions to trigger after readings' update,
42                as specified in Report interface documentation.
43          - name: Interval
44            type: uint64
45            description: >
46                Period of time in milliseconds when Report is updated with new
47                readings. Minimal interval is defined in MinInterval property.
48          - name: MetricParams
49            type: array[struct[array[struct[object_path,string]],enum[xyz.openbmc_project.Telemetry.Report.OperationType],string,enum[xyz.openbmc_project.Telemetry.Report.CollectionTimescope],uint64]]
50            description: >
51                Array of metric parameters, which are stored in a way specified
52                in description of ReadingParameters property from Report
53                interface documentation.
54          - name: Enabled
55            type: boolean
56            description: >
57                Indicates if readings in report will be updated.
58      returns:
59          - name: reportPath
60            type: object_path
61            description: >
62                Path to new report ->
63                  /xyz/openbmc_project/Telemetry/Reports/{parameters[Id]}.
64
65properties:
66    - name: MaxReports
67      type: size
68      description: >
69          Contains the max number of metric reports supported by the Telemetry.
70          This property is added to be compliant with the Redfish Telemetry
71          Service schema, that contains MaxReports property.
72      flags:
73          - const
74    - name: MinInterval
75      type: uint64
76      description: >
77          Minimal allowed time between readings property updates. It limits
78          Interval property in xyz.openbmc_project.Telemetry.Report and interval
79          parameter in AddReport method.
80      flags:
81          - const
82    - name: SupportedOperationTypes
83      type: array[enum[xyz.openbmc_project.Telemetry.Report.OperationType]]
84      description: >
85          Contains subset of operation types currently supported by this
86          service.
87      flags:
88          - const
89